From 469f485004efef917ac318184a2b51a635725a1a Mon Sep 17 00:00:00 2001 From: Dylan Wilson Date: Wed, 15 Mar 2017 20:59:42 +1000 Subject: [PATCH 01/11] develop into master for the 0.6.359 release (#353) * Add WorldPosition & rename ParentTransform -> Transform * doc fix * WorldRotation, WorldScale * Fix scale & doc * Update SceneNode to use Transform2D * Update SceneGraph demo * forgot to add drawable position, rotation, scale * Transform2D strongly typed parent * Revert "SceneNode & Transform2D" * fixed a failing unit test * Fix * Transform updates. * Matrix2D updates. * negated the roation when calculating the local matrix so that it's consistent with sprite batch rotation * updated Entity to inherit from Transform2D * working on the ecs * Graphics branch; sprites. * rename to `GeometryBatch2D` * remove SpriteOptions; use SpriteEffects even though the name is confusing * update project * update demo game * doc EnqueueSprite * doc PrimitiveTypeExtensions * doc fix PrimitiveBatch * remove technique name * update Demo.Batching project name and namespaces * doc fix * doc fix * doc fix * update demo * optimization * change to IDrawContext api * Bug Fixes & API Update & Documentation Fixes * using collision rectangles created in tiled * working on jumping * tweaking jumping * tightened up the controls so the feel pretty good * Monogame.Extended.SizeF class: Added implicit operator which casts Vector2 to SizeF * Removed unnecessary constructor from SizeF * Added another test to RectangleF * Added test which check if RectangleF can be constructed with Point instead of SizeF * simplified the component system interface * making the entity components more generic * made the collision system more generic ready to add in more entity types * created player death using a particle emitter component * Objectgroups for Tiles! Those changes make the "per tile ObjectGroups" available. They are used by Tiled for tile collision using Objects. * fix FramesPerSecondCounter * remove average * forgot to remove unused property * use int instead of float * fix demo * Revert "Objectgroups for Tiles!" * added the ability to destroy entities after a delay * Fixing all the things! So now I tested things and it works! Objectgroups are now available in TileSetTiles as seen here (http://screencast.com/t/YvdCmQoUcd) * fix to never lose time * Fixing the Objectgroups So this time, everything is fixed and actually tested: The tilemap demo works just fine (apart from Game.Exit() being obsolete). Those objectgroups are now available in their respective TileSetTiles as seen in this screenshot: http://screencast.com/t/YvdCmQoUcd * fixed a minor issue with the fps counter in the batching demo * Blame me... Seems like this got discarded while merging the remote tracking branch, so here it is. * Added a new constructor and documentation to TextureAtlas class (#250) * Added a new constructor to TextureAtlas. Also documented TextureAtlas class. * Update TextureAtlas.cs * fixed a minor bug in the player movement system * DynamicBatch2D - SpriteBatch API (#251) * Matrix2D ToMatrix * Merge draw calls when enqueueing. * progress * Batch2D sort modes * SpriteBatch API for Batch2D * doc fix * doc fix * DynamicBatch2D drawing API matches SpriteBatch * Make End() protected * Match SpriteBatch.Begin API * DynamicBatch2D DrawSprite by destination rectangle * GetPrimitiveCount -> GetPrimitivesCount * doc fix * fixed a couple of merge issues * fixed some broken unit tests * player sprite sheet animations are working * tweaked player animation again * player respawn * Added additional overloads to the BitmapFont DrawString methods to support the same functions the SpriteBatch.DrawString have. Also updated the demo to showcase all of these. (#253) * started working in introducing an enemy * implemented super quick and dirty enemy ai * enemies can kill you * weird rules around death * tweaking * refactored the game code into a screen * Fix typo (#258) Fix a typo in the Readme.txt * Add Nez mention (#261) * Fixed the layers offset (#264) * Some Basic Primitives. (#266) * Primitives. * Fix unit tests. * removed the build status from the readme * replaced GetBoundingRectangle methods with properties * fixed a bug in rectangle GetCorners * Fixed scale for BitmapFont draws (#269) * Removed the X and Y properties keeping Position (#272) I removed the X and Y properties keeping Position property to make things less redundant. I also added another constructor that takes a Vector2 position directly. * slight tweak on thickness parsing * fixed the color json converter * Add support for Multiple Tilesets per TiledTileLayer in Tiled Map Renderer. (#278) * Tiled Map rendering now supports multiple tilesets. Previously there was a bug where tiles made with alternate tilesets would draw undefined images. TiledTileLayer holds an array of tiles to draw. This was based on their order from left to right/top to bottom in the grid. The new ordering is based on each TiledTileset to allow tiles with the same TiledTileset to be placed next to each other in memory. This is to support the best choice for map rendering optimization available at this time. The old code would draw the map with 1 call per TiledTileLayer. This new code has 1 draw code per Tileset, per TiledTileLayer. (The re-ordering of tiles described in the above paragraph is neccesary to prevent 1 draw call per TiledTile per TiledTileset.) * Revert a change that I didn't mean to make; AddObjectGroup was change din between me starting the TiledTileLayer change and now. * -Added tiny-grey-cloud.png, Updated level-1.tmx to include 2 tilesets (tiny-tiles and tiny-grey-cloud) and used both tilesets in creating the map. And of course had to update Content.mgcb which also changed Demo.Platformer.csproj. * BoundingRectangle (#279) * Primitives. * Fix unit tests. * BoundingBox2D -> BoundingRectangle * reduced the tolerence on conversion unit tests * BitmapFonts now returning a "rectangle" size. (#281) * BitmapFonts correct height and width "rectangle" measuring string. * BitmapFonts correct height and width "rectangle" measuring string. * MeasureString now returns "rectangle" size. BitmapFont MeasureString() now returns the proper "rectangle" size as expected. Fixed up LetterSpacing issue if line ends with line char. * Renamed variables and added null check. * no idea why that test is failing * Changed obsolete demo code (#283) * Changed obsolete code in the demos * Unit Test commit was a mistake * Extra tab was added by mistake * added a ToString to BitmapFontRegion * Set baseVertex properly in call to DrawIndexedPrimitives when vertex buffer is larger than ushort.MaxValue (#285) * Precalculate tilecount per tileset when TiledTileLayer is created (#287) * Set baseVertex properly in call to DrawIndexedPrimitives when vertex buffer is larger than ushort.MaxValue * Precalculate tilecount per tileset when TiledTileLayer is created to save time while rendering the map later. * Update variable name to match MGE style * BoundingRectangle Radii (#286) * Primitives. * Fix unit tests. * BoundingBox2D -> BoundingRectangle * BoundingRectangle Radii * Changing TileSet instances to Tileset (#289) * Changed obsolete code in the demos * Unit Test commit was a mistake * Extra tab was added by mistake * renamed TileSet to Tileset for file names and csproj * Rename TiledTileSet to TiledTileset in github * Rename TiledTileSet to TiledTileset in github * Rename TiledTileSet to TiledTileset in github * renamed variables containing tileSet to tileset * Changed GetTileSetTileById to GetTilesetTileById * Fix BoundingRect unit tests. (#288) * Only draw tiles that actually exist for each tileset/layer combination (#290) * Only draw tiles that actually exist for each tileset/layer combination * Set baseVertex and startIndex based on the number of draw calls and tiles per call * the delta on the angle tests was way too sensitive * hopefully that fixes the build * added the build status icon back into the readme * Separate out the Tiled rendering code (#292) * Only draw tiles that actually exist for each tileset/layer combination * Set baseVertex and startIndex based on the number of draw calls and tiles per call * First commit of separate map renderer code * Only override on mono (linux)... not sure why this is needed, will look into later * Updated test data for unittest * Fixed layer transparency not working * Couple of small changes * Initial commit of separate Tiled rendering code * Fixed bug causing last tile of each group not to draw * Adding unit tests for FullMapRenderer and TiledTileset * Fixed depth calculation bug when a map consists of only one layer * Added level05.tmx to test isometric left-up rendering * Minor bugs in TextureAtlases (#293) * Print region name in exception * Don't remove the path, only the extension * Removed PathHelper * rejiggled the tiled demo slightly * Made BitmapFont ctr public (#300) I'm not using the MonoGame content pipeline, so i need the contructor to be public to be able to manually load a BitmapFont from file * Nuclex GUI (#299) * Added a new constructor to TextureAtlas. Also documented TextureAtlas class. * Update TextureAtlas.cs * Adapting Nuclex GUI to MonoGame.Extended. Still incomplete. * Ported Nuclex GUI; errors persist * Fixed { } * Started moving from XML skins to JSON skins * Framework compiles * Removed unnecessary item * Nuclex Gui compiling completely. Demo project started. Cleaning out errors required. * "Save" point before massive input changes * Dealing with Input on Nuclex * Added missing files * Nuclex works! * Cleanup started * Removed plugin mechanic * Nuclex finally finished. Mostly. * Commented demo project * Modified input to deal with issue #171 * Added remark to MouseListener * Renamed skin converter to better reflect its function * decoupled the nuclex gui code from the input listeners and other code cleanup * moved the nuclex gui demo into the demos folder * a couple of minor tweaks in the nuclex code * Implemented object layer rendering and tileset transparency color (#301) * Render tile objects in object layers and obey tileset transparency color * Added alpha color tileset to level04.tmx * Fixed unit test and added missing test * Made drawing of object layers configurable * Fixed references to missing files after merge * Fixed another duplicate file reference * Replacing everything with var * fixed a minor bug in the tiled demo * removed unused reference to PCL storage * Implemented animated tiles (#302) * Implemented animated tiles * Only update animated tiles. * massive refactor and partial implementation of animated object tiles * Include IShapeF object as part of the TiledObject (#304) * gui control collection * split collisions into a separate project (#308) * split the old gui code out into it's own project * started refactoring the old gui code * refactored nine patches to derive from texture reigons * fixed some reference issues in the gui demo * rendering nested gui controls * using a smaller font * started fixiing the bitmap font issues * Fixed calculation of x and y radius for ellipse (#311) * Fixed calculation of x and y radius for ellipse and removing TiledObject.Points in favor of using TiledObject.Shape * Don't try to rebuild dynamic details when a map isn't loaded * partially fixed the bitmap font issue, ignored a broken unit test to avoid confusion * Updated the readme * setup a bitmapfont to spritefont comparison * basic text rendering with new lines looks identical to sprite font * perfectly matching measure string methods * perfect bitmap font rotation * perfect rotation and scaling parity between bitmapfont and spritefont * wrote a failing circle interests test * [Shapes] CircleF.Intersects(Rectangle) fix (#315) * Added a new constructor to TextureAtlas. Also documented TextureAtlas class. * Update TextureAtlas.cs * Adapting Nuclex GUI to MonoGame.Extended. Still incomplete. * Ported Nuclex GUI; errors persist * Fixed { } * Started moving from XML skins to JSON skins * Framework compiles * Removed unnecessary item * Nuclex Gui compiling completely. Demo project started. Cleaning out errors required. * "Save" point before massive input changes * Dealing with Input on Nuclex * Added missing files * Nuclex works! * Cleanup started * Removed plugin mechanic * Nuclex finally finished. Mostly. * Commented demo project * Modified input to deal with issue #171 * Added remark to MouseListener * Renamed skin converter to better reflect its function * CircleF + some other things * Fixed demo * Cleanup * cleaned up the demo and removed text wrapping * setup a demo to show that measure string is still not quite working correctly * perfect measure string * added a GetStringRectangle overload for backwards compatibility and to fix a compile error on the build * Create Graphics library. (#316) * Fix BoundingRect unit tests. * Create `graphics` library. * fixed a minor project dependency issue * first bitmap font measure string unit test * added more bitmap font unit tests * DynamicBatch rework (#317) * Fix BoundingRect unit tests. * Create `graphics` library. * DynamicBatchRenderer2D * remove sprite * remove shipbuilder artifact * Create CONTRIBUTING.md (#319) * removed texture atlas from raw xml * a little resharper code cleanup * Tiled library (#322) * Tiled library * remove test project * minor project reference tweak * removed the old gui code and slowly started replacing it with the new * removed broken tests * tweak to gui skin * Fix minor typo in README (#328) * JSON.NET & .nuspecs (#330) * JSON.NET & .nuspecs * fix dependencies for Tiled lib * add xml comments * Add nuget files to solution * fixed some project depenency issues * finally getting back to working on the new gui system * working gui buttons * minor code cleanup * labels and checkboxes * fixed broken hint paths after upgrading to VS 2017 * gui button demo * Tiled Rework (#331) * Tiled Rework * fix failing tests * really fix failing tests * cleaned up some project dependency issues * minor api refactor on the tiled map renderer * Fix Tiled Problems (#332) * Add Tiled Content Pipeline library to NuGet * Update Tiled NuGet package elements. * Remove dependency on Graphics * Update csproj for removal of Graphics dependency * Fix build errors * Fix problems * creating gui skins in code * testing inset panels * partial gui skin serializing * removed sprite font because it doesn't seem to work with latest monogame * moved the demo project template to reduce confusion * working through loading gui skins from a file * Graphics refactor (#340) * Graphics refactor * fix * working on loading gui skins from a file * loading gui skins from a file with the exception of 9 patches * almost there with nine patch regions in the gui skin * rendering nine patches from the gui skin * code cleanup mostly in the gui and serialization namespaces * big code cleanup * mucking around with gui control factory * working on nested gui controls * in the middle of loading gui screens from a file * loading panels and buttons from skin files * nested gui controls * gui control visibility * added a gui cursor and image control * enforce c# 6.0 language version at least until VS2017 comes out of RC * minor code cleanup * started working on editable textbox * renamed GuiCheckBox properly this time * refactored the gui renderer * working gui text box * cleaned up and fixed some issues with keyboard focus * basic working checkboxes * a few tweaks to the gui skinning system * sprite batch clipping rectangles extension method * changed the clipping source rectangle code to account for sprite scaling * allow clipping rectangles on nine patch regions * extended the clipping code to cover bitmap fonts and all overloads of texture region draw methods * added clipping rectangles to gui controls so that text is clipped inside the bounds of textbox * clipping text inside a textbox is a little harder than I expected * basic gui progress bars * TiledMapRenderer allow custom effect (#345) * renamed texture region to background region * minor code cleanup * hacked together a working android project from one of the monogame samples * renamed some stuff and cleaned up namespaces * slightly hacked gui demo rendering on android * gui touch input mostly working * minor tweak to gui button behaviour * Tiled Fix (#349) * Tiled fix. * Remove bat file. * upgraded the demos to match the monogame 3.6 desktop GL template * fixed a mistake in the readme * gah, fixed another issue in the bitmap fonts demo * split nuclex gui out of the core library and added some new nuspec files * fixing nuget dependency version issue hopefully * moved the particle system and the entity component system into their own nuget packages * fixed unsafe code flag in release mode and some minor code cleanup * moved the scene graphs code into it's own nuget package * reorganized the graphics project to be consistent with everything else * changed the tools versions in the project files to be compatible with xamrain studio * Geometric Primitives Cleanup (#346) * CircleF and RectangleF * Fix build errors * Fix iteration memory leaks. (#350) * fixed some merge conflicts * moved the input listeners to thier own nuget package * split the animations namespace into two nuget packages * split the animations content pipeline code out into it's own content pipeline dll --- CONTRIBUTING.md | 72 + Dependencies/MonoGame.Framework.dll | Bin 190464 -> 0 bytes Logos/support-on-patreon.png | Bin 0 -> 6190 bytes README.md | 146 +- Source/Demos/Demo.Android/Activity1.cs | 52 + .../Demos/Demo.Android/Assets/AboutAssets.txt | 19 + .../Assets/adventure-gui-skin.json | 91 + .../Demo.Android/Assets/title-screen.json | 76 + .../Demos/Demo.Android/Content/Content.mgcb | 50 + .../Content/adventure-gui-atlas.json | 174 ++ .../Demo.Android/Content/adventure-gui.png | Bin 0 -> 41892 bytes .../Demos/Demo.Android/Content/small-font.fnt | 105 + .../Demo.Android/Content/small-font_0.png | Bin 0 -> 5636 bytes Source/Demos/Demo.Android/Demo.Android.csproj | 123 + Source/Demos/Demo.Android/Demo.Android.sln | 36 + Source/Demos/Demo.Android/GameMain.cs | 102 + Source/Demos/Demo.Android/Icon.ico | Bin 0 -> 147541 bytes .../Properties/AndroidManifest.xml | 5 + .../Demo.Android/Properties/AssemblyInfo.cs | 43 + .../Demo.Android/Resources/AboutResources.txt | 44 + .../Demo.Android/Resources/Drawable/Icon.png | Bin 0 -> 5998 bytes .../Resources/Drawable/Splash.png | Bin 0 -> 691831 bytes .../Resources/Resource.Designer.cs | 99 + .../Demo.Android/Resources/Values/Strings.xml | 5 + .../Demo.Android/Resources/Values/Styles.xml | 7 + Source/Demos/Demo.Android/packages.config | 5 + .../Demo.Animations/Content/Content.mgcb | 28 + .../Content/logo-square-128.png | Bin 0 -> 3513 bytes .../Demo.Animations/Demo.Animations.csproj | 134 ++ Source/Demos/Demo.Animations/Game1.cs | 98 + Source/Demos/Demo.Animations/Icon.bmp | Bin 0 -> 262282 bytes Source/Demos/Demo.Animations/Icon.ico | Bin 0 -> 147541 bytes .../MonoGame.Framework.dll.config | 9 + .../Demos/Demo.Animations/OpenTK.dll.config | 27 + Source/Demos/Demo.Animations/Program.cs | 16 + .../Properties/AssemblyInfo.cs | 39 + Source/Demos/Demo.Animations/app.config | 7 + Source/Demos/Demo.Animations/app.manifest | 42 + Source/Demos/Demo.Animations/packages.config | 4 + .../Demos/Demo.Batching/Content/Content.mgcb | 56 + Source/Demos/Demo.Batching/Content/Thumbs.db | Bin 0 -> 8704 bytes .../Content/logo-square-128-copy.png | Bin 0 -> 2987 bytes .../Demo.Batching/Content/logo-square-128.png | Bin 0 -> 2987 bytes .../Demo.Batching/Content/montserrat-32.fnt | 341 +++ .../Demo.Batching/Content/montserrat-32_0.png | Bin 0 -> 10313 bytes .../Demos/Demo.Batching/Demo.Batching.csproj | 131 ++ Source/Demos/Demo.Batching/Game1.cs | 175 ++ Source/Demos/Demo.Batching/Icon.bmp | Bin 0 -> 262282 bytes Source/Demos/Demo.Batching/Icon.ico | Bin 0 -> 147541 bytes .../MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.Batching/Program.cs | 16 + .../Demo.Batching/Properties/AssemblyInfo.cs | 36 + Source/Demos/Demo.Batching/SpriteMaterial.cs | 21 + Source/Demos/Demo.Batching/app.config | 7 + Source/Demos/Demo.Batching/app.manifest | 42 + Source/Demos/Demo.Batching/packages.config | 4 + .../Demo.BitmapFonts/Content/Content.mgcb | 17 + .../Demo.BitmapFonts/Content/impact-32.fnt | 244 ++ .../Demo.BitmapFonts/Content/impact-32_0.png | Bin 0 -> 14250 bytes .../Demo.BitmapFonts/Demo.BitmapFonts.csproj | 70 +- Source/Demos/Demo.BitmapFonts/Game1.cs | 76 - Source/Demos/Demo.BitmapFonts/Game2.cs | 131 ++ Source/Demos/Demo.BitmapFonts/Icon.bmp | Bin 0 -> 262282 bytes .../MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.BitmapFonts/Program.cs | 6 +- Source/Demos/Demo.BitmapFonts/app.config | 8 +- Source/Demos/Demo.BitmapFonts/app.manifest | 42 + Source/Demos/Demo.BitmapFonts/packages.config | 2 +- Source/Demos/Demo.Camera/Demo.Camera.csproj | 58 +- Source/Demos/Demo.Camera/Game1.cs | 2 +- Source/Demos/Demo.Camera/Icon.bmp | Bin 0 -> 262282 bytes .../Demo.Camera/MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.Camera/app.manifest | 42 + Source/Demos/Demo.Camera/packages.config | 2 +- .../Content/Content.mgcb | 40 + .../Content/logo-square-128.png | Bin 0 -> 3513 bytes .../Content/motw.png | Bin 0 -> 24060 bytes .../Demo.EntityComponentSystem.csproj | 139 ++ .../Demos/Demo.EntityComponentSystem/Game1.cs | 124 + .../Demos/Demo.EntityComponentSystem/Icon.bmp | Bin 0 -> 262282 bytes .../Demos/Demo.EntityComponentSystem/Icon.ico | Bin 0 -> 147541 bytes .../MonoGame.Framework.dll.config | 9 + .../OpenTK.dll.config | 27 + .../Demo.EntityComponentSystem/Program.cs | 16 + .../Properties/AssemblyInfo.cs | 39 + .../Demo.EntityComponentSystem/app.config | 7 + .../Demo.EntityComponentSystem/app.manifest | 42 + .../packages.config | 4 + Source/Demos/Demo.Gui/Content/Content.mgcb | 50 + .../Demo.Gui/Content/adventure-gui-atlas.json | 174 ++ .../Demo.Gui/Content/adventure-gui-skin.json | 91 + .../Demos/Demo.Gui/Content/adventure-gui.png | Bin 0 -> 41892 bytes .../Content/raw/adventure/adventure-gui.tps | 216 ++ .../Content/raw/adventure/buttonLong_grey.png | Bin 0 -> 599 bytes .../raw/adventure/buttonLong_grey_pressed.png | Bin 0 -> 645 bytes .../raw/adventure/buttonRound_beige.png | Bin 0 -> 983 bytes .../adventure/buttonRound_beige_checked.png | Bin 0 -> 1178 bytes .../raw/adventure/buttonRound_close.png | Bin 0 -> 1231 bytes .../raw/adventure/buttonSquare_blue.png | Bin 0 -> 499 bytes .../adventure/buttonSquare_blue_pressed.png | Bin 0 -> 510 bytes .../raw/adventure/checkBox_beige_checked.png | Bin 0 -> 692 bytes .../adventure/checkBox_beige_unchecked.png | Bin 0 -> 494 bytes .../raw/adventure/cursorSword_silver.png | Bin 0 -> 1005 bytes .../Content/raw/adventure/grey_textBox.png | Bin 0 -> 586 bytes .../Content/raw/adventure/monogame-title.png | Bin 0 -> 39147 bytes .../raw/adventure/panelInset_beige.png | Bin 0 -> 631 bytes .../Content/raw/adventure/panel_brown.png | Bin 0 -> 799 bytes .../raw/adventure/progress-bar-blue.png | Bin 0 -> 542 bytes .../raw/adventure/progress-bar-container.png | Bin 0 -> 352 bytes .../raw/adventure/progress-bar-green.png | Bin 0 -> 536 bytes .../raw/adventure/progress-bar-red.png | Bin 0 -> 532 bytes .../Demo.Gui/Content/raw/small-font.bmfc | 55 + Source/Demos/Demo.Gui/Content/small-font.fnt | 105 + .../Demos/Demo.Gui/Content/small-font_0.png | Bin 0 -> 5636 bytes .../Demos/Demo.Gui/Content/title-screen.json | 76 + Source/Demos/Demo.Gui/Demo.Gui.csproj | 160 ++ Source/Demos/Demo.Gui/Game1.cs | 106 + Source/Demos/Demo.Gui/Icon.bmp | Bin 0 -> 262282 bytes Source/Demos/Demo.Gui/Icon.ico | Bin 0 -> 147541 bytes .../Demo.Gui/MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.Gui/OpenTK.dll.config | 27 + Source/Demos/Demo.Gui/Program.cs | 16 + .../Demos/Demo.Gui/Properties/AssemblyInfo.cs | 39 + Source/Demos/Demo.Gui/app.config | 7 + Source/Demos/Demo.Gui/app.manifest | 42 + Source/Demos/Demo.Gui/packages.config | 5 + .../Demo.InputListeners.csproj | 62 +- Source/Demos/Demo.InputListeners/Game1.cs | 16 +- Source/Demos/Demo.InputListeners/Icon.bmp | Bin 0 -> 262282 bytes .../MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.InputListeners/app.manifest | 42 + .../Demos/Demo.InputListeners/packages.config | 2 +- .../Demos/Demo.NuclexGui/Content/Content.mgcb | 52 + .../Content/DefaultFont.spritefont | 60 + .../Demo.NuclexGui/Content/SuaveSheet.png | Bin 0 -> 6749 bytes .../Content/TitleFont.spritefont | 60 + .../Content/logo-square-128.png | Bin 0 -> 3513 bytes .../Demo.NuclexGui/Demo.NuclexGui.csproj | 137 ++ Source/Demos/Demo.NuclexGui/Game1.cs | 222 ++ Source/Demos/Demo.NuclexGui/Icon.bmp | Bin 0 -> 262282 bytes Source/Demos/Demo.NuclexGui/Icon.ico | Bin 0 -> 147541 bytes .../MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.NuclexGui/OpenTK.dll.config | 27 + Source/Demos/Demo.NuclexGui/Program.cs | 16 + .../Demo.NuclexGui/Properties/AssemblyInfo.cs | 39 + Source/Demos/Demo.NuclexGui/app.config | 7 + Source/Demos/Demo.NuclexGui/app.manifest | 42 + Source/Demos/Demo.NuclexGui/packages.config | 4 + .../Demos/Demo.Particles/Content/Content.mgcb | 2 +- .../Demo.Particles/Demo.Particles.csproj | 62 +- Source/Demos/Demo.Particles/Game1.cs | 25 +- Source/Demos/Demo.Particles/Icon.bmp | Bin 0 -> 262282 bytes .../MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.Particles/app.manifest | 42 + Source/Demos/Demo.Particles/packages.config | 2 +- .../Demo.Platformer/Content/Content.mgcb | 70 + .../Demos/Demo.Platformer/Content/level-1.tmx | 55 + .../Content/logo-square-128.png | Bin 0 -> 3513 bytes .../Content/tiny-characters.png | Bin 0 -> 6124 bytes .../Content/tiny-grey-cloud.png | Bin 0 -> 252 bytes .../Demo.Platformer/Content/tiny-tiles.png | Bin 0 -> 47059 bytes .../Demo.Platformer/Demo.Platformer.csproj | 164 ++ .../Entities/Components/BasicCollisionBody.cs | 23 + .../Components/BasicCollisionHandler.cs | 33 + .../Entities/Components/CharacterState.cs | 17 + .../Entities/Components/EnemyAi.cs | 20 + .../Components/EnemyCollisionHandler.cs | 30 + .../Components/PlayerCollisionHandler.cs | 22 + .../Demo.Platformer/Entities/EntityFactory.cs | 121 + .../Entities/Systems/BasicCollisionSystem.cs | 110 + .../Entities/Systems/CharacterStateSystem.cs | 35 + .../Entities/Systems/EnemyMovementSystem.cs | 33 + .../Entities/Systems/PlayerMovementSystem.cs | 92 + Source/Demos/Demo.Platformer/GameMain.cs | 47 + Source/Demos/Demo.Platformer/Icon.bmp | Bin 0 -> 262282 bytes Source/Demos/Demo.Platformer/Icon.ico | Bin 0 -> 147541 bytes .../MonoGame.Framework.dll.config | 9 + .../Demos/Demo.Platformer/OpenTK.dll.config | 27 + Source/Demos/Demo.Platformer/Program.cs | 16 + .../Properties/AssemblyInfo.cs | 39 + .../Demo.Platformer/Screens/GameScreen.cs | 110 + .../Services/TiledObjectToEntityService.cs | 33 + Source/Demos/Demo.Platformer/app.config | 7 + Source/Demos/Demo.Platformer/app.manifest | 42 + Source/Demos/Demo.Platformer/packages.config | 4 + .../Demo.SceneGraphs/Demo.SceneGraphs.csproj | 62 +- Source/Demos/Demo.SceneGraphs/Game1.cs | 2 +- Source/Demos/Demo.SceneGraphs/Icon.bmp | Bin 0 -> 262282 bytes .../MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.SceneGraphs/app.manifest | 42 + Source/Demos/Demo.SceneGraphs/packages.config | 2 +- .../Demos/Demo.Screens/Content/Content.mgcb | 45 + .../Demo.Screens/Content/logo-square-128.png | Bin 0 -> 3513 bytes .../Demo.Screens/Content/montserrat-32.fnt | 341 +++ .../Demo.Screens/Content/montserrat-32_0.png | Bin 0 -> 10313 bytes Source/Demos/Demo.Screens/Demo.Screens.csproj | 137 ++ Source/Demos/Demo.Screens/Game1.cs | 60 + Source/Demos/Demo.Screens/Icon.bmp | Bin 0 -> 262282 bytes Source/Demos/Demo.Screens/Icon.ico | Bin 0 -> 147541 bytes .../MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.Screens/OpenTK.dll.config | 27 + Source/Demos/Demo.Screens/Program.cs | 16 + .../Demo.Screens/Properties/AssemblyInfo.cs | 39 + .../Screens/AudioOptionsScreen.cs | 19 + .../Screens/KeyboardOptionsScreen.cs | 20 + .../Demo.Screens/Screens/LoadGameScreen.cs | 18 + .../Demo.Screens/Screens/MainMenuScreen.cs | 26 + Source/Demos/Demo.Screens/Screens/MenuItem.cs | 31 + .../Demos/Demo.Screens/Screens/MenuScreen.cs | 108 + .../Screens/MouseOptionsScreen.cs | 18 + .../Demo.Screens/Screens/OptionsScreen.cs | 23 + .../Screens/VideoOptionsScreen.cs | 18 + Source/Demos/Demo.Screens/app.config | 7 + Source/Demos/Demo.Screens/app.manifest | 42 + Source/Demos/Demo.Screens/packages.config | 4 + .../Demos/Demo.SpaceGame/Content/Content.mgcb | 54 +- .../Content/Fonts/courier-new-32.fnt | 105 - .../Content/Fonts/courier-new-32_0.png | Bin 11012 -> 0 bytes .../Content/Fonts/montserrat-32.fnt | 341 +++ .../Content/Fonts/montserrat-32_0.png | Bin 0 -> 10313 bytes .../Demo.SpaceGame/Demo.SpaceGame.csproj | 68 +- .../Demo.SpaceGame/Entities/Explosion.cs | 20 +- .../Demos/Demo.SpaceGame/Entities/Meteor.cs | 2 +- .../Demo.SpaceGame/Entities/MeteorFactory.cs | 3 +- .../Demo.SpaceGame/Entities/Spaceship.cs | 1 - Source/Demos/Demo.SpaceGame/Game1.cs | 37 +- Source/Demos/Demo.SpaceGame/Icon.bmp | Bin 0 -> 262282 bytes .../MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.SpaceGame/app.manifest | 42 + Source/Demos/Demo.SpaceGame/packages.config | 2 +- .../Content/Backgrounds/Hills_1.png | Bin 26312 -> 0 bytes .../Content/Backgrounds/Hills_2.png | Bin 39727 -> 0 bytes .../Content/Backgrounds/Hills_3.png | Bin 33226 -> 0 bytes .../Content/Backgrounds/Hills_4.png | Bin 38701 -> 0 bytes .../Content/Backgrounds/Hills_Couds.png | Bin 55120 -> 0 bytes .../Content/Backgrounds/Hills_Sky.png | Bin 23741 -> 0 bytes .../Content/Content.mgcb | 98 +- .../Content/Project1.mgcf | 3 + .../Content/Sprites/fireball.png | Bin 88681 -> 18711 bytes .../Content/Sprites/motw.png | Bin 0 -> 24060 bytes .../Content/Sprites/shadedDark42.png | Bin 1001 -> 0 bytes .../Content/Sprites/stump.png | Bin 25922 -> 0 bytes .../Content/Sprites/zombie-animations.aa | 2 +- .../Content/Tilesets/isometric.tmx | 58 - .../Content/Tilesets/level01.tmx | 872 +++---- .../Content/Tilesets/test-tileset-atlas.json | 93 - .../Tilesets/test-tileset-left-down.tmx | 19 - .../Content/Tilesets/test-tileset-left-up.tmx | 19 - .../Content/Tilesets/test-tileset-map1.tmx | 19 - .../Tilesets/test-tileset-right-down.tmx | 19 - .../Tilesets/test-tileset-right-up.tmx | 19 - .../Content/Tilesets/test-tileset.png | Bin 3166 -> 0 bytes .../Content/read-me.md | 8 +- .../Demo.SpriteSheetAnimatons.csproj | 114 +- .../Demos/Demo.SpriteSheetAnimations/Game1.cs | 102 +- .../Demos/Demo.SpriteSheetAnimations/Icon.bmp | Bin 0 -> 262282 bytes .../MonoGame.Framework.dll.config | 9 + .../Demo.SpriteSheetAnimations/Zombie.cs | 30 +- .../Demo.SpriteSheetAnimations/app.manifest | 42 + .../packages.config | 2 +- .../Demos/Demo.Sprites/Content/Content.mgcb | 17 + .../Demo.Sprites/Content/clipping-test.png | Bin 0 -> 1449 bytes Source/Demos/Demo.Sprites/Demo.Sprites.csproj | 59 +- Source/Demos/Demo.Sprites/Game1.cs | 40 +- Source/Demos/Demo.Sprites/Icon.bmp | Bin 0 -> 262282 bytes .../MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.Sprites/app.manifest | 42 + Source/Demos/Demo.Sprites/packages.config | 2 +- .../Demos/Demo.TiledMaps/Content/Content.mgcb | 83 +- .../Demos/Demo.TiledMaps/Content/L05TS1.png | Bin 0 -> 18021 bytes Source/Demos/Demo.TiledMaps/Content/Thumbs.db | Bin 0 -> 9216 bytes .../Demo.TiledMaps/Content/alphacolortile.png | Bin 0 -> 1607 bytes .../Demo.TiledMaps/Content/free-tileset.png | Bin 124879 -> 107826 bytes .../Content/isometric-tiles.png | Bin 0 -> 206951 bytes .../Demos/Demo.TiledMaps/Content/level01.tmx | 447 +--- .../Demos/Demo.TiledMaps/Content/level02.tmx | 529 +++++ .../Demos/Demo.TiledMaps/Content/level03.tmx | 62 + .../Demos/Demo.TiledMaps/Content/level04.tmx | 82 + .../Demos/Demo.TiledMaps/Content/level05.tmx | 20 + .../Demos/Demo.TiledMaps/Content/level06.tmx | 54 + .../Demos/Demo.TiledMaps/Content/level07.tmx | 241 ++ .../Content/non-uniform-tileset.png | Bin 0 -> 14886 bytes .../Demos/Demo.TiledMaps/Content/untitled.tmx | 93 - Source/Demos/Demo.TiledMaps/CustomEffect.cs | 24 + .../Demo.TiledMaps/Demo.TiledMaps.csproj | 106 +- Source/Demos/Demo.TiledMaps/Game1.cs | 200 +- Source/Demos/Demo.TiledMaps/Icon.bmp | Bin 0 -> 262282 bytes .../MonoGame.Framework.dll.config | 9 + Source/Demos/Demo.TiledMaps/app.manifest | 42 + Source/Demos/Demo.TiledMaps/packages.config | 2 +- .../Demo.ViewportAdapters.csproj | 59 +- Source/Demos/Demo.ViewportAdapters/Game1.cs | 14 +- Source/Demos/Demo.ViewportAdapters/Icon.bmp | Bin 0 -> 262282 bytes .../MonoGame.Framework.dll.config | 9 + .../Demos/Demo.ViewportAdapters/app.manifest | 42 + .../Demo.ViewportAdapters/packages.config | 2 +- .../MonoGame.Extended Demo Project.zip | Bin .../Demos/DemoProjectTemplate}/README.md | 0 Source/Demos/README.md | 9 + Source/MonoGame.Extended.Animations.nuspec | 34 + .../AnimatedSprite.cs | 47 + .../MonoGame.Extended.Animations/Animation.cs | 86 + .../AnimationComponent.cs | 29 + .../MonoGame.Extended.Animations.csproj | 61 + .../Properties/AssemblyInfo.cs | 30 + .../SpriteSheets/SpriteSheetAnimation.cs | 102 + .../SpriteSheets/SpriteSheetAnimationData.cs | 21 + .../SpriteSheetAnimationFactory.cs | 51 + .../SpriteSheetAnimationFactoryReader.cs | 52 + .../packages.config | 4 + .../CollisionActor.cs | 5 +- .../CollisionGrid.cs | 28 +- .../CollisionGridCell.cs | 6 +- .../CollisionGridCellFlag.cs | 0 .../CollisionInfo.cs | 1 - .../CollisionWorld.cs | 64 +- .../CollisionWorldExtensions.cs | 17 + .../IActorTarget.cs | 1 - .../MonoGame.Extended.Collisions.csproj | 74 + .../Properties/AssemblyInfo.cs | 30 + .../packages.config | 4 + .../AstridAnimatorAnimation.cs | 14 +- .../AstridAnimatorFile.cs | 8 +- .../AstridAnimatorImporter.cs | 13 +- .../AstridAnimatorProcessor.cs | 8 +- .../AstridAnimatorProcessorResult.cs | 10 +- .../AstridAnimatorWriter.cs | 6 +- ...xtended.Content.Pipeline.Animations.csproj | 73 + .../MonoGame.Framework.dll.config | 9 + .../Properties/AssemblyInfo.cs | 36 + .../packages.config | 5 + ....Extended.Content.Pipeline.Graphics.csproj | 75 + .../Properties/AssemblyInfo.cs | 36 + .../TestData/isometric_tileset.png | Bin 4599 -> 0 bytes .../TiledMapImporterProcessorTests.cs | 198 -- .../TiledMapLayerAnimatedModelContent.cs | 27 + .../Graphics/TiledMapLayerModelContent.cs | 139 ++ ...ame.Extended.Content.Pipeline.Tiled.csproj | 130 ++ .../Properties/AssemblyInfo.cs | 35 + .../Tiled/ContentWriterExtensions.cs | 20 + .../Tiled/TiledMapContent.cs} | 39 +- .../Tiled/TiledMapEllipseContent.cs} | 2 +- .../Tiled/TiledMapImageContent.cs} | 20 +- .../Tiled/TiledMapImageLayerContent.cs} | 30 +- .../Tiled/TiledMapImporter.cs | 69 + .../Tiled/TiledMapLayerContent.cs | 51 + .../Tiled/TiledMapObjectContent.cs} | 34 +- .../Tiled/TiledMapObjectDrawOrderContent.cs | 10 + .../Tiled/TiledMapObjectLayerContent.cs | 29 + .../Tiled/TiledMapOrientationContent.cs | 11 + .../Tiled/TiledMapPolygonContent.cs} | 2 +- .../Tiled/TiledMapPolylineContent.cs} | 2 +- .../Tiled/TiledMapProcessor.cs | 359 +++ .../Tiled/TiledMapPropertyContent.cs} | 16 +- .../Tiled/TiledMapTerrainContent.cs} | 27 +- .../Tiled/TiledMapTileDrawOrderContent.cs | 12 + .../Tiled/TiledMapTileLayerContent.cs} | 19 +- .../Tiled/TiledMapTileLayerDataContent.cs} | 27 +- .../Tiled/TiledMapTileOffsetContent.cs | 17 + .../Tiled/TiledMapTilesetContent.cs} | 52 +- ...iledMapTilesetTileAnimationFrameContent.cs | 18 + .../Tiled/TiledMapTilesetTileContent.cs | 39 + .../Tiled/TiledMapWriter.cs | 287 +++ .../packages.config | 4 + .../BitmapFonts/BitmapFontChar.cs | 75 +- .../BitmapFonts/BitmapFontCommon.cs | 35 +- .../BitmapFonts/BitmapFontFile.cs | 46 +- .../BitmapFonts/BitmapFontImporter.cs | 3 +- .../BitmapFonts/BitmapFontInfo.cs | 77 +- .../BitmapFonts/BitmapFontKerning.cs | 31 +- .../BitmapFonts/BitmapFontPage.cs | 23 +- .../BitmapFonts/BitmapFontProcessor.cs | 1 - .../BitmapFonts/BitmapFontProcessorResult.cs | 6 +- .../BitmapFonts/BitmapFontWriter.cs | 5 +- .../ContentImporterResult.cs | 6 +- .../ContentLogger.cs | 14 + .../ContentWriterExtensions.cs | 2 +- .../MonoGame.Extended.Content.Pipeline.csproj | 53 +- .../PathExtensions.cs | 5 +- .../PathHelper.cs | 11 - .../Properties/AssemblyInfo.cs | 6 +- .../TexturePackerJsonImporter.cs | 13 +- .../TextureAtlases/TexturePackerMeta.cs | 1 - .../TextureAtlases/TexturePackerPoint.cs | 1 - .../TextureAtlases/TexturePackerProcessor.cs | 2 +- .../TextureAtlases/TexturePackerRectangle.cs | 1 - .../TextureAtlases/TexturePackerWriter.cs | 7 +- .../Tiled/TiledMapImporter.cs | 50 - .../Tiled/TiledMapProcessor.cs | 16 +- .../Tiled/TiledMapProcessorResult.cs | 17 - .../Tiled/TiledMapWriter.cs | 195 -- .../Tiled/TmxDataTile.cs | 24 - .../Tiled/TmxLayer.cs | 35 - .../Tiled/TmxObjectGroup.cs | 40 - .../Tiled/TmxOrientation.cs | 11 - .../Tiled/TmxRenderOrder.cs | 12 - .../Tiled/TmxTile.cs | 38 - .../Tiled/TmxTileOffset.cs | 23 - .../packages.config | 2 +- Source/MonoGame.Extended.Entities.nuspec | 35 + .../Components/EntityComponent.cs | 79 + Source/MonoGame.Extended.Entities/Entity.cs | 71 + .../EntityComponentSystem.cs | 149 ++ .../MonoGame.Extended.Entities.csproj | 69 + .../Properties/AssemblyInfo.cs | 30 + .../Systems/AnimatedSpriteSystem.cs | 20 + .../Systems/ComponentSystem.cs | 70 + .../Systems/ParticleEmitterSystem.cs | 18 + .../Systems/SpriteBatchSystem.cs | 50 + .../packages.config | 4 + Source/MonoGame.Extended.Graphics.nuspec | 35 + Source/MonoGame.Extended.Graphics/Batcher.cs | 387 ++++ .../MonoGame.Extended.Graphics/Batcher2D.cs | 474 ++++ .../Effects/DefaultEffect.cs | 203 ++ .../Effects/EffectResource.cs | 78 + .../Effects/ITextureEffect.cs | 18 + .../Effects/MatrixChainEffect.cs | 155 ++ .../Resources/DefaultEffect.dx11.mgfxo | Bin 0 -> 4721 bytes .../Effects/Resources/DefaultEffect.fx | 71 + .../Effects/Resources/DefaultEffect.ogl.mgfxo | Bin 0 -> 4718 bytes .../Effects/Resources/Macros.fxh | 53 + .../Effects/Resources/RebuildEffects.bat | 15 + .../Effects/Resources/Structures.fxh | 51 + .../MonoGame.Extended.Graphics/FlipFlags.cs | 13 + .../Geometry/GeometryBuilder.cs | 24 + .../Geometry/GeometryBuilder2D.cs | 119 + .../IBatchDrawCallInfo.cs | 19 + .../IMatrixChainEffect.cs | 30 + .../MonoGame.Extended.Graphics.csproj | 86 + .../PrimitiveTypeExtensions.cs | 42 + .../Properties/AssemblyInfo.cs | 30 + .../RenderTarget2DExtensions.cs | 10 +- .../packages.config | 4 + Source/MonoGame.Extended.Gui.nuspec | 34 + .../Controls/GuiButton.cs | 93 + .../Controls/GuiCheckBox.cs | 74 + .../Controls/GuiControl.cs | 180 ++ .../Controls/GuiControlCollection.cs | 87 + .../Controls/GuiImage.cs | 16 + .../Controls/GuiLabel.cs | 22 + .../Controls/GuiPanel.cs | 16 + .../Controls/GuiProgressBar.cs | 46 + .../Controls/GuiTextBox.cs | 107 + .../GuiControlFactory.cs | 43 + .../MonoGame.Extended.Gui/GuiControlStyle.cs | 96 + Source/MonoGame.Extended.Gui/GuiCursor.cs | 11 + .../GuiPointerEventArgs.cs | 41 + Source/MonoGame.Extended.Gui/GuiScreen.cs | 46 + Source/MonoGame.Extended.Gui/GuiSkin.cs | 113 + .../GuiSpriteBatchRenderer.cs | 73 + Source/MonoGame.Extended.Gui/GuiSystem.cs | 156 ++ .../Keepers/GuiAlignmentHelper.cs | 72 + .../MonoGame.Extended.Gui.csproj | 96 + .../Properties/AssemblyInfo.cs | 28 + .../Serialization/GuiControlJsonConverter.cs | 51 + .../GuiControlStyleJsonConverter.cs | 85 + .../Serialization/GuiJsonContractResolver.cs | 46 + .../Serialization/GuiJsonSerializer.cs | 26 + .../GuiNinePatchRegion2DJsonConverter.cs | 28 + .../Serialization/GuiSkinJsonConverter.cs | 60 + .../GuiTextureAtlasJsonConverter.cs | 29 + .../Serialization/GuiTextureRegionService.cs | 37 + Source/MonoGame.Extended.Gui/packages.config | 5 + Source/MonoGame.Extended.Input.nuspec | 33 + .../ExtendedPlayerIndex.cs | 32 + .../InputListeners/GamePadEventArgs.cs | 24 +- .../InputListeners/GamePadListener.cs | 416 ++-- .../InputListeners/GamePadListenerSettings.cs | 134 ++ .../InputListeners/IInputService.cs | 13 + .../InputListeners/InputListener.cs | 15 + .../InputListeners/InputListenerComponent.cs | 37 + .../InputListeners/InputListenerSettings.cs | 4 +- .../InputListeners/KeyboardEventArgs.cs | 119 + .../InputListeners/KeyboardListener.cs | 44 +- .../KeyboardListenerSettings.cs | 4 +- .../InputListeners/KeyboardModifiers.cs | 4 +- .../InputListeners/MouseButton.cs | 7 +- .../InputListeners/MouseEventArgs.cs | 15 +- .../InputListeners/MouseListener.cs | 84 +- .../InputListeners/MouseListenerSettings.cs | 7 +- .../InputListeners/TouchEventArgs.cs | 39 + .../InputListeners/TouchListener.cs | 57 + .../InputListeners/TouchListenerSettings.cs | 18 + .../MonoGame.Extended.Input.csproj | 72 + .../Properties/AssemblyInfo.cs | 30 + .../MonoGame.Extended.Input/packages.config | 4 + Source/MonoGame.Extended.NuclexGui.nuspec | 35 + .../Controls/Desktop/GuiButtonControl.cs | 30 + .../Controls/Desktop/GuiChoiceControl.cs | 65 + .../Desktop/GuiCloseWindowButtonControl.cs | 7 + .../Controls/Desktop/GuiDraggableControl.cs | 93 + .../Desktop/GuiHorizontalSliderControl.cs | 40 + .../Controls/Desktop/GuiInputControl.cs | 293 +++ .../Controls/Desktop/GuiListControl.cs | 269 +++ .../Controls/Desktop/GuiOptionControl.cs | 34 + .../Controls/Desktop/GuiSliderControl.cs | 118 + .../Desktop/GuiVerticalSliderControl.cs | 40 + .../Controls/Desktop/GuiWindowControl.cs | 31 + .../Controls/Desktop/IListRowLocator.cs | 38 + .../Controls/Desktop/IOpeningLocator.cs | 32 + .../Controls/Desktop/IThumbLocator.cs | 28 + .../Controls/GuiControl.cs | 360 +++ .../Controls/GuiControlEventArgs.cs | 21 + .../Controls/GuiControlInput.cs | 460 ++++ .../Controls/GuiDesktopControl.cs | 33 + .../Controls/GuiLabelControl.cs | 21 + .../Controls/GuiPressableControl.cs | 277 +++ .../Controls/GuiProgressControl.cs | 9 + .../Controls/IFocusable.cs | 18 + .../Controls/IWritable.cs | 26 + .../Controls/ParentingControlCollection.cs | 178 ++ .../MonoGame.Extended.NuclexGui/GuiManager.cs | 390 ++++ .../MonoGame.Extended.NuclexGui/GuiScreen.cs | 614 +++++ .../IGuiInputService.cs | 28 + .../IGuiService.cs | 22 + .../Input/Command.cs | 44 + .../Input/DefaultInputCapturer.cs | 277 +++ .../Input/IInputCapturer.cs | 12 + .../Input/IInputReceiver.cs | 82 + .../MonoGame.Extended.NuclexGui.csproj | 138 ++ .../Properties/AssemblyInfo.cs | 30 + .../Resources/Skins/DefaultFont.xnb | Bin 0 -> 21525 bytes .../Resources/Skins/SuaveSheet.xnb | Bin 0 -> 262229 bytes .../Resources/Skins/SuaveSkin.json | 2048 +++++++++++++++++ .../Resources/Skins/TitleFont.xnb | Bin 0 -> 21525 bytes .../Support/EnumHelper.cs | 74 + .../Support/WeakReference.cs | 70 + .../UniRectangle.cs | 196 ++ .../MonoGame.Extended.NuclexGui/UniScalar.cs | 191 ++ .../MonoGame.Extended.NuclexGui/UniVector.cs | 165 ++ .../Visuals/Flat/FlatGuiGraphics.cs | 267 +++ .../Visuals/Flat/FlatGuiGraphicsDrawing.cs | 235 ++ .../Visuals/Flat/FlatGuiVisualizer.cs | 281 +++ .../Visuals/Flat/GuiSkin.cs | 176 ++ .../Visuals/Flat/GuiSkinConverters.cs | 236 ++ .../Visuals/Flat/IFlatControlRenderer.cs | 19 + .../Visuals/Flat/IFlatGuiGraphics.cs | 73 + .../Visuals/Flat/OpeningLocator.cs | 96 + .../Renderers/FlatButtonControlRenderer.cs | 58 + .../Renderers/FlatChoiceControlRenderer.cs | 71 + .../FlatHorizontalSliderControlRenderer.cs | 37 + .../Renderers/FlatInputControlRenderer.cs | 100 + .../Renderers/FlatLabelControlRenderer.cs | 20 + .../Flat/Renderers/FlatListControlRenderer.cs | 130 ++ .../Renderers/FlatOptionControlRenderer.cs | 71 + .../Renderers/FlatProgressControlRenderer.cs | 24 + .../FlatVerticalSliderControlRenderer.cs | 40 + .../Renderers/FlatWindowControlRenderer.cs | 24 + .../Visuals/IGuiVisualizer.cs | 10 + .../packages.config | 5 + Source/MonoGame.Extended.Particles.nuspec | 33 + .../ColorExtensions.cs | 45 +- .../FastRandomExtensions.cs | 15 + .../HslColor.cs | 110 +- .../LineSegment.cs | 49 +- .../Modifiers/AgeModifier.cs | 23 + .../Containers/CircleContainerModifier.cs | 14 +- .../Containers/RectangleContainerModifier.cs | 33 +- .../RectangleLoopContainerModifier.cs | 26 +- .../Modifiers/DragModifier.cs | 6 +- .../Modifiers/IModifier.cs | 0 .../Interpolators/ColorInterpolator.cs | 23 + .../Interpolators/HueInterpolator.cs | 22 + .../Modifiers/Interpolators/IInterpolator.cs | 7 + .../Interpolators/OpacityInterpolator.cs | 19 + .../Interpolators/RotationInterpolator.cs | 19 + .../Interpolators/ScaleInterpolator.cs | 21 + .../Modifiers/LinearGravityModifier.cs | 8 +- .../Modifiers/OpacityFastFadeModifier.cs | 0 .../Modifiers/RotationModifier.cs | 2 +- .../Modifiers/VelocityColorModifier.cs | 16 +- .../Modifiers/VelocityModifier.cs | 42 + .../Modifiers/VortexModifier.cs | 10 +- .../MonoGame.Extended.Particles.csproj | 95 + .../Particle.cs | 0 .../ParticleBuffer.cs | 71 +- .../ParticleEffect.cs | 6 +- .../ParticleEmitter.cs | 83 +- .../ParticleExtensions.cs} | 17 +- .../ParticleModifierExecutionStrategy.cs | 11 +- .../ParticleReleaseParameters.cs | 26 + .../Profiles/BoxFillProfile.cs | 8 +- .../Profiles/BoxProfile.cs | 14 +- .../Profiles/BoxUniformProfile.cs | 32 + .../Profiles/CircleProfile.cs | 12 +- .../Profiles/LineProfile.cs | 8 +- .../Profiles/PointProfile.cs | 4 +- .../Profiles/Profile.cs | 33 +- .../Profiles/RingProfile.cs | 12 +- .../Profiles/SprayProfile.cs | 11 +- .../Properties/AssemblyInfo.cs | 30 + .../packages.config | 4 + Source/MonoGame.Extended.SceneGraphs.nuspec | 33 + .../ISceneEntity.cs | 11 + .../MonoGame.Extended.SceneGraphs.csproj | 59 + .../Properties/AssemblyInfo.cs | 30 + .../SceneEntityCollection.cs | 2 +- .../SceneGraph.cs | 6 +- .../SceneGraphExtensions.cs} | 2 +- .../SceneNode.cs | 90 + .../SceneNodeCollection.cs | 0 .../packages.config | 4 + .../Shapes/CircleTests.cs | 189 -- Source/MonoGame.Extended.Tiled.nuspec | 35 + .../Graphics/Effects/ITiledMapEffect.cs | 9 + .../Graphics/Effects/TiledMapEffect.cs | 32 + .../Graphics/TiledMapLayerAnimatedModel.cs | 26 + .../Graphics/TiledMapLayerModel.cs | 75 + .../Graphics/TiledMapRenderer.cs | 170 ++ .../MonoGame.Extended.Tiled.csproj | 100 + .../Properties/AssemblyInfo.cs | 32 + .../Tiled/ContentReaderExtensions.cs | 19 + .../MonoGame.Extended.Tiled/Tiled/TiledMap.cs | 118 + .../Tiled/TiledMapEllipseObject.cs | 20 + .../Tiled/TiledMapHelper.cs | 52 + .../Tiled/TiledMapImageLayer.cs | 23 + .../Tiled/TiledMapLayer.cs | 50 + .../Tiled/TiledMapLayerType.cs | 9 + .../Tiled/TiledMapObject.cs | 39 + .../Tiled/TiledMapObjectDrawOrder.cs | 8 + .../Tiled/TiledMapObjectLayer.cs | 53 + .../Tiled/TiledMapObjectType.cs | 11 + .../Tiled/TiledMapOrientation.cs | 9 + .../Tiled/TiledMapPolygonObject.cs | 23 + .../Tiled/TiledMapPolylineObject.cs | 23 + .../Tiled/TiledMapProperties.cs | 8 + .../Tiled/TiledMapReader.cs | 106 + .../Tiled/TiledMapRectangleObject.cs | 12 + .../Tiled/TiledMapTile.cs | 29 + .../Tiled/TiledMapTileDrawOrder.cs} | 4 +- .../Tiled/TiledMapTileFlipFlags.cs | 14 + .../Tiled/TiledMapTileLayer.cs | 52 + .../Tiled/TiledMapTileObject.cs | 21 + .../Tiled/TiledMapTileset.cs | 94 + .../Tiled/TiledMapTilesetAnimatedTile.cs | 51 + .../Tiled/TiledMapTilesetTile.cs | 14 + .../TiledMapTilesetTileAnimationFrame.cs | 47 + .../MonoGame.Extended.Tiled/packages.config | 4 + Source/MonoGame.Extended.Tweening.nuspec | 34 + .../MonoGame.Extended.Tweening/DelayTween.cs | 20 + .../EasingFunctions.cs | 122 + .../FluentTweening.cs | 98 + .../MonoGame.Extended.Tweening.csproj | 66 + .../Properties/AssemblyInfo.cs | 30 + .../PropertyTween.cs | 65 + .../TweenAnimation.cs | 19 + .../MonoGame.Extended.Tweening/TweenChain.cs | 27 + .../MonoGame.Extended.Tweening/TweenGroup.cs | 21 + .../TweeningComponent.cs | 27 + .../packages.config | 4 + Source/MonoGame.Extended.nuspec | 30 +- Source/MonoGame.Extended.sln | 361 ++- Source/MonoGame.Extended/Angle.cs | 224 ++ .../Animations/SpriteSheetAnimation.cs | 16 - .../Animations/SpriteSheetAnimationGroup.cs | 41 - .../SpriteSheetAnimationGroupReader.cs | 44 - .../Animations/SpriteSheetAnimator.cs | 170 -- .../BitmapFonts/BitmapFont.cs | 99 +- .../BitmapFonts/BitmapFontExtensions.cs | 134 +- .../BitmapFonts/BitmapFontReader.cs | 8 +- .../BitmapFonts/BitmapFontRegion.cs | 20 +- Source/MonoGame.Extended/BoundingRectangle.cs | 579 +++++ Source/MonoGame.Extended/Camera2D.cs | 69 +- Source/MonoGame.Extended/CircleF.cs | 497 ++++ .../Collections/BitVector32.cs | 625 +++++ Source/MonoGame.Extended/Collections/Deque.cs | 870 ++++--- .../Collections/DictionaryExtensions.cs | 18 + .../Collections/IObservableCollection.cs | 26 + .../Collections/ItemEventArgs.cs | 20 + .../Collections/ObservableCollection.cs | 117 + Source/MonoGame.Extended/Collections/Pool.cs | 141 +- Source/MonoGame.Extended/ColorExtensions.cs | 20 + Source/MonoGame.Extended/ColorHelper.cs | 83 + .../Content/ContentManagerExtensions.cs | 5 +- .../Content/ContentReaderExtensions.cs | 51 +- Source/MonoGame.Extended/EllipseF.cs | 48 + .../EventHandlerExtensions.cs | 24 - Source/MonoGame.Extended/FastRandom.cs | 127 + Source/MonoGame.Extended/FloatHelper.cs | 15 + .../FramesPerSecondCounter.cs | 57 +- .../FramesPerSecondCounterComponent.cs | 43 +- .../MonoGame.Extended/GameTimeExtensions.cs | 2 +- Source/MonoGame.Extended/IColorable.cs | 9 + Source/MonoGame.Extended/IDraw.cs | 9 - Source/MonoGame.Extended/IEquatableByRef.cs | 21 + Source/MonoGame.Extended/IPoolable.cs | 2 +- Source/MonoGame.Extended/IRectangular.cs | 8 + Source/MonoGame.Extended/ISizable.cs | 8 + .../InputListeners/GamePadListenerSettings.cs | 121 - .../InputListeners/InputListener.cs | 16 - .../InputListeners/InputListenerManager.cs | 66 - .../InputListeners/KeyboardEventArgs.cs | 119 - .../InputListeners/TouchEventArgs.cs | 30 - .../InputListeners/TouchListener.cs | 48 - .../InputListeners/TouchListenerSettings.cs | 14 - .../Maps/Tiled/CollisionWorldExtensions.cs | 17 - .../Maps/Tiled/SpriteBatchExtensions.cs | 29 - .../Maps/Tiled/TiledImageLayer.cs | 31 - .../Maps/Tiled/TiledLayer.cs | 26 - .../MonoGame.Extended/Maps/Tiled/TiledMap.cs | 126 - .../Maps/Tiled/TiledMapOrientation.cs | 9 - .../Maps/Tiled/TiledMapReader.cs | 159 -- .../Maps/Tiled/TiledObject.cs | 51 - .../Maps/Tiled/TiledObjectGroup.cs | 17 - .../Maps/Tiled/TiledProperties.cs | 8 - .../MonoGame.Extended/Maps/Tiled/TiledTile.cs | 21 - .../Maps/Tiled/TiledTileLayer.cs | 192 -- .../Maps/Tiled/TiledTileSet.cs | 51 - Source/MonoGame.Extended/Matrix2D.cs | 1026 +++++++++ .../MonoGame.Extended.csproj | 168 +- Source/MonoGame.Extended/Particles/Axis.cs | 213 -- .../MonoGame.Extended/Particles/ColorRange.cs | 47 - .../MonoGame.Extended/Particles/FastRand.cs | 136 -- .../Particles/Modifiers/ColorInterpolator2.cs | 34 - .../Particles/Modifiers/HueInterpolator2.cs | 22 - .../Modifiers/OpacityInterpolator2.cs | 19 - .../Particles/Modifiers/ScaleInterpolator2.cs | 21 - .../Modifiers/VelocityHueModifier.cs | 35 - .../Particles/ParticleReleaseParameters.cs | 24 - .../Particles/Profiles/BoxUniformProfile.cs | 26 - Source/MonoGame.Extended/Particles/Range.cs | 317 --- Source/MonoGame.Extended/Particles/RangeF.cs | 323 --- .../Particles/Vector2Extensions.cs | 28 - Source/MonoGame.Extended/Point2.cs | 376 +++ Source/MonoGame.Extended/PrimitivesHelper.cs | 128 ++ .../Properties/AssemblyInfo.cs | 12 +- Source/MonoGame.Extended/RandomExtensions.cs | 44 + Source/MonoGame.Extended/Range.cs | 79 + Source/MonoGame.Extended/Ray2D.cs | 199 ++ .../MonoGame.Extended/RectangleExtensions.cs | 43 + Source/MonoGame.Extended/RectangleF.cs | 682 ++++++ .../SceneGraphs/SceneNode.cs | 112 - Source/MonoGame.Extended/Screens/Screen.cs | 73 + .../Screens/ScreenComponent.cs | 92 + Source/MonoGame.Extended/Segment2D.cs | 317 +++ .../Serialization/ColorJsonConverter.cs | 25 + .../ContentManagerJsonConverter.cs | 40 + .../Serialization/ITextureRegionService.cs | 9 + .../NinePatchRegion2DJsonConverter.cs | 44 + .../Serialization/Size2JsonConverter.cs | 30 + .../TextureRegion2DJsonConverter.cs | 33 + .../Serialization/ThicknessJsonConverter.cs | 24 + .../Serialization/Vector2JsonConverter.cs | 31 + ...eBatchExtensions.cs => ShapeExtensions.cs} | 119 +- Source/MonoGame.Extended/Shapes/CircleF.cs | 369 --- .../Shapes/{PolygonF.cs => Polygon.cs} | 71 +- Source/MonoGame.Extended/Shapes/Polyline.cs | 42 + .../Shapes/RectangleExtensions.cs | 43 - Source/MonoGame.Extended/Shapes/RectangleF.cs | 487 ---- Source/MonoGame.Extended/Shapes/ShapeF.cs | 17 - .../SimpleDrawableGameComponent.cs | 48 + .../MonoGame.Extended/SimpleGameComponent.cs | 52 + Source/MonoGame.Extended/Size.cs | 68 - Source/MonoGame.Extended/Size2.cs | 298 +++ .../ISpriteBatchDrawable.cs} | 10 +- Source/MonoGame.Extended/Sprites/Sprite.cs | 61 +- .../Sprites/SpriteAnimator.cs | 103 - .../Sprites/SpriteBatchExtensions.cs | 46 - .../Sprites/SpriteExtensions.cs | 28 + .../TextureAtlases/NinePatchRegion2D.cs | 69 + .../TextureAtlases/SpriteBatchExtensions.cs | 26 - .../TextureAtlases/TextureAtlas.cs | 140 +- .../TextureAtlases/TextureAtlasExtensions.cs | 113 + .../TextureAtlases/TextureAtlasReader.cs | 14 +- .../TextureAtlases/TextureRegion2D.cs | 14 +- Source/MonoGame.Extended/Thickness.cs | 87 + .../Timers/ContinuousClock.cs | 8 +- .../Timers/CountdownTimer.cs | 10 +- Source/MonoGame.Extended/Timers/GameTimer.cs | 32 +- Source/MonoGame.Extended/Timers/TimerState.cs | 2 +- Source/MonoGame.Extended/Transform.cs | 312 +++ Source/MonoGame.Extended/Vector2Extensions.cs | 222 +- .../ViewportAdapters/BoxingViewportAdapter.cs | 101 +- .../DefaultViewportAdapter.cs | 1 + .../ScalingViewportAdapter.cs | 7 +- .../ViewportAdapters/ViewportAdapter.cs | 7 +- .../ViewportAdapters/WindowViewportAdapter.cs | 11 +- Source/MonoGame.Extended/packages.config | 3 +- ...tended.Content.Pipeline.Tests.Tiled.csproj | 92 + .../Properties/AssemblyInfo.cs | 36 + .../TestData/isometric.tmx | 0 .../TestData}/isometric_tileset.png | Bin .../TestData/level01.tmx | 2 +- .../TestData/test-object-layer.tmx | 0 .../TestData/test-tileset-base64.tmx | 0 .../TestData/test-tileset-csv.tmx | 0 .../TestData/test-tileset-gzip.tmx | 0 .../TestData/test-tileset-xml.tmx | 0 .../TestData/test-tileset-zlib.tmx | 0 .../TiledMapImporterProcessorTests.cs | 197 ++ .../packages.config | 2 +- .../AstridAnimatorImporterTests.cs | 2 +- .../AstridAnimatorProcessorTests.cs | 2 +- ...ame.Extended.Content.Pipeline.Tests.csproj | 54 +- .../Properties/AssemblyInfo.cs | 0 .../TestData/astrid-animator-atlas.json | 0 .../TestData/astrid-animator.aa | 0 .../TestData/test-tileset.json | 0 ...TexturePackerJsonImporterProcessorTests.cs | 6 +- .../packages.config | 2 +- .../Controls/GuiControlCollectionTests.cs | 58 + .../Controls/GuiPanelTests.cs | 21 + .../GuiRendererTests.cs | 34 + .../MonoGame.Extended.Gui.Tests.csproj | 77 + .../Properties/AssemblyInfo.cs | 36 + .../packages.config | 5 + .../MonoGame.Extended.Tests/AngleTest.cs | 91 + .../AssertExtensions.cs | 21 + .../BitmapFonts/BitmapFontTests.cs | 81 + .../MonoGame.Extended.Tests/Camera2DTests.cs | 5 +- .../Collections/BitVector32Tests.cs | 245 ++ .../Collections/DequeTests.cs | 0 .../Collections/PoolTests.cs | 3 +- .../MonoGame.Extended.Tests/MockGameWindow.cs | 21 +- .../MonoGame.Extended.Tests.csproj | 129 ++ .../MonoGame.Extended.Tests/OpenTK.dll.config | 0 .../Particles/AssertionModifier.cs | 25 + .../Particles/ColourTests.cs | 116 + .../Particles/EmitterTests.cs | 129 ++ .../Particles/ParticleBufferTests.cs | 184 ++ .../Particles/Profiles/PointProfileTests.cs | 36 + .../Particles/Profiles/RingProfileTests.cs | 42 + .../Primitives/BoundingRectangleTests.cs | 396 ++++ .../Primitives/CircleFTests.cs | 411 ++++ .../Primitives/EllipseFTest.cs | 38 + .../Primitives/Point2Tests.cs | 356 +++ .../Primitives/Ray2DTests.cs | 217 ++ .../Primitives/RectangleFTests.cs | 45 + .../Primitives/Segment2DTests.cs | 251 ++ .../Primitives/Size2Tests.cs | 304 +++ .../Properties/AssemblyInfo.cs | 0 .../MonoGame.Extended.Tests/RangeTests.cs | 102 + .../Shapes/PolygonFTests.cs | 20 +- .../Sprites/SpriteTests.cs | 9 +- .../TestGraphicsDevice.cs | 12 + .../MonoGame.Extended.Tests/TestHelper.cs | 5 +- .../TextureAtlases/TextureAtlasTests.cs | 26 +- .../TextureAtlases/TextureRegion2DTests.cs | 0 .../Vector2ExtensionsTests.cs | 16 +- .../BoxingViewportAdapterTests.cs | 4 +- .../DefaultViewportAdapterTests.cs | 0 .../MonoGame.Extended.Tests/packages.config | 6 + .../FullMapRendererTest.cs | 291 +++ .../MonoGame.Extended.Tiled.Tests.csproj} | 56 +- .../Properties/AssemblyInfo.cs | 36 + .../TiledTilesetTests.cs | 130 ++ .../packages.config | 4 + Source/readme.txt | 17 +- mkdocs.yml | 5 + 849 files changed, 43357 insertions(+), 8874 deletions(-) create mode 100644 CONTRIBUTING.md delete mode 100644 Dependencies/MonoGame.Framework.dll create mode 100644 Logos/support-on-patreon.png create mode 100644 Source/Demos/Demo.Android/Activity1.cs create mode 100644 Source/Demos/Demo.Android/Assets/AboutAssets.txt create mode 100644 Source/Demos/Demo.Android/Assets/adventure-gui-skin.json create mode 100644 Source/Demos/Demo.Android/Assets/title-screen.json create mode 100644 Source/Demos/Demo.Android/Content/Content.mgcb create mode 100644 Source/Demos/Demo.Android/Content/adventure-gui-atlas.json create mode 100644 Source/Demos/Demo.Android/Content/adventure-gui.png create mode 100644 Source/Demos/Demo.Android/Content/small-font.fnt create mode 100644 Source/Demos/Demo.Android/Content/small-font_0.png create mode 100644 Source/Demos/Demo.Android/Demo.Android.csproj create mode 100644 Source/Demos/Demo.Android/Demo.Android.sln create mode 100644 Source/Demos/Demo.Android/GameMain.cs create mode 100644 Source/Demos/Demo.Android/Icon.ico create mode 100644 Source/Demos/Demo.Android/Properties/AndroidManifest.xml create mode 100644 Source/Demos/Demo.Android/Properties/AssemblyInfo.cs create mode 100644 Source/Demos/Demo.Android/Resources/AboutResources.txt create mode 100644 Source/Demos/Demo.Android/Resources/Drawable/Icon.png create mode 100644 Source/Demos/Demo.Android/Resources/Drawable/Splash.png create mode 100644 Source/Demos/Demo.Android/Resources/Resource.Designer.cs create mode 100644 Source/Demos/Demo.Android/Resources/Values/Strings.xml create mode 100644 Source/Demos/Demo.Android/Resources/Values/Styles.xml create mode 100644 Source/Demos/Demo.Android/packages.config create mode 100644 Source/Demos/Demo.Animations/Content/Content.mgcb create mode 100644 Source/Demos/Demo.Animations/Content/logo-square-128.png create mode 100644 Source/Demos/Demo.Animations/Demo.Animations.csproj create mode 100644 Source/Demos/Demo.Animations/Game1.cs create mode 100644 Source/Demos/Demo.Animations/Icon.bmp create mode 100644 Source/Demos/Demo.Animations/Icon.ico create mode 100644 Source/Demos/Demo.Animations/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.Animations/OpenTK.dll.config create mode 100644 Source/Demos/Demo.Animations/Program.cs create mode 100644 Source/Demos/Demo.Animations/Properties/AssemblyInfo.cs create mode 100644 Source/Demos/Demo.Animations/app.config create mode 100644 Source/Demos/Demo.Animations/app.manifest create mode 100644 Source/Demos/Demo.Animations/packages.config create mode 100644 Source/Demos/Demo.Batching/Content/Content.mgcb create mode 100644 Source/Demos/Demo.Batching/Content/Thumbs.db create mode 100644 Source/Demos/Demo.Batching/Content/logo-square-128-copy.png create mode 100644 Source/Demos/Demo.Batching/Content/logo-square-128.png create mode 100644 Source/Demos/Demo.Batching/Content/montserrat-32.fnt create mode 100644 Source/Demos/Demo.Batching/Content/montserrat-32_0.png create mode 100644 Source/Demos/Demo.Batching/Demo.Batching.csproj create mode 100644 Source/Demos/Demo.Batching/Game1.cs create mode 100644 Source/Demos/Demo.Batching/Icon.bmp create mode 100644 Source/Demos/Demo.Batching/Icon.ico create mode 100644 Source/Demos/Demo.Batching/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.Batching/Program.cs create mode 100644 Source/Demos/Demo.Batching/Properties/AssemblyInfo.cs create mode 100644 Source/Demos/Demo.Batching/SpriteMaterial.cs create mode 100644 Source/Demos/Demo.Batching/app.config create mode 100644 Source/Demos/Demo.Batching/app.manifest create mode 100644 Source/Demos/Demo.Batching/packages.config create mode 100644 Source/Demos/Demo.BitmapFonts/Content/impact-32.fnt create mode 100644 Source/Demos/Demo.BitmapFonts/Content/impact-32_0.png delete mode 100644 Source/Demos/Demo.BitmapFonts/Game1.cs create mode 100644 Source/Demos/Demo.BitmapFonts/Game2.cs create mode 100644 Source/Demos/Demo.BitmapFonts/Icon.bmp create mode 100644 Source/Demos/Demo.BitmapFonts/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.BitmapFonts/app.manifest create mode 100644 Source/Demos/Demo.Camera/Icon.bmp create mode 100644 Source/Demos/Demo.Camera/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.Camera/app.manifest create mode 100644 Source/Demos/Demo.EntityComponentSystem/Content/Content.mgcb create mode 100644 Source/Demos/Demo.EntityComponentSystem/Content/logo-square-128.png create mode 100644 Source/Demos/Demo.EntityComponentSystem/Content/motw.png create mode 100644 Source/Demos/Demo.EntityComponentSystem/Demo.EntityComponentSystem.csproj create mode 100644 Source/Demos/Demo.EntityComponentSystem/Game1.cs create mode 100644 Source/Demos/Demo.EntityComponentSystem/Icon.bmp create mode 100644 Source/Demos/Demo.EntityComponentSystem/Icon.ico create mode 100644 Source/Demos/Demo.EntityComponentSystem/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.EntityComponentSystem/OpenTK.dll.config create mode 100644 Source/Demos/Demo.EntityComponentSystem/Program.cs create mode 100644 Source/Demos/Demo.EntityComponentSystem/Properties/AssemblyInfo.cs create mode 100644 Source/Demos/Demo.EntityComponentSystem/app.config create mode 100644 Source/Demos/Demo.EntityComponentSystem/app.manifest create mode 100644 Source/Demos/Demo.EntityComponentSystem/packages.config create mode 100644 Source/Demos/Demo.Gui/Content/Content.mgcb create mode 100644 Source/Demos/Demo.Gui/Content/adventure-gui-atlas.json create mode 100644 Source/Demos/Demo.Gui/Content/adventure-gui-skin.json create mode 100644 Source/Demos/Demo.Gui/Content/adventure-gui.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/adventure-gui.tps create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/buttonLong_grey.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/buttonLong_grey_pressed.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/buttonRound_beige.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/buttonRound_beige_checked.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/buttonRound_close.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/buttonSquare_blue.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/buttonSquare_blue_pressed.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/checkBox_beige_checked.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/checkBox_beige_unchecked.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/cursorSword_silver.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/grey_textBox.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/monogame-title.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/panelInset_beige.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/panel_brown.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/progress-bar-blue.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/progress-bar-container.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/progress-bar-green.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/adventure/progress-bar-red.png create mode 100644 Source/Demos/Demo.Gui/Content/raw/small-font.bmfc create mode 100644 Source/Demos/Demo.Gui/Content/small-font.fnt create mode 100644 Source/Demos/Demo.Gui/Content/small-font_0.png create mode 100644 Source/Demos/Demo.Gui/Content/title-screen.json create mode 100644 Source/Demos/Demo.Gui/Demo.Gui.csproj create mode 100644 Source/Demos/Demo.Gui/Game1.cs create mode 100644 Source/Demos/Demo.Gui/Icon.bmp create mode 100644 Source/Demos/Demo.Gui/Icon.ico create mode 100644 Source/Demos/Demo.Gui/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.Gui/OpenTK.dll.config create mode 100644 Source/Demos/Demo.Gui/Program.cs create mode 100644 Source/Demos/Demo.Gui/Properties/AssemblyInfo.cs create mode 100644 Source/Demos/Demo.Gui/app.config create mode 100644 Source/Demos/Demo.Gui/app.manifest create mode 100644 Source/Demos/Demo.Gui/packages.config create mode 100644 Source/Demos/Demo.InputListeners/Icon.bmp create mode 100644 Source/Demos/Demo.InputListeners/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.InputListeners/app.manifest create mode 100644 Source/Demos/Demo.NuclexGui/Content/Content.mgcb create mode 100644 Source/Demos/Demo.NuclexGui/Content/DefaultFont.spritefont create mode 100644 Source/Demos/Demo.NuclexGui/Content/SuaveSheet.png create mode 100644 Source/Demos/Demo.NuclexGui/Content/TitleFont.spritefont create mode 100644 Source/Demos/Demo.NuclexGui/Content/logo-square-128.png create mode 100644 Source/Demos/Demo.NuclexGui/Demo.NuclexGui.csproj create mode 100644 Source/Demos/Demo.NuclexGui/Game1.cs create mode 100644 Source/Demos/Demo.NuclexGui/Icon.bmp create mode 100644 Source/Demos/Demo.NuclexGui/Icon.ico create mode 100644 Source/Demos/Demo.NuclexGui/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.NuclexGui/OpenTK.dll.config create mode 100644 Source/Demos/Demo.NuclexGui/Program.cs create mode 100644 Source/Demos/Demo.NuclexGui/Properties/AssemblyInfo.cs create mode 100644 Source/Demos/Demo.NuclexGui/app.config create mode 100644 Source/Demos/Demo.NuclexGui/app.manifest create mode 100644 Source/Demos/Demo.NuclexGui/packages.config create mode 100644 Source/Demos/Demo.Particles/Icon.bmp create mode 100644 Source/Demos/Demo.Particles/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.Particles/app.manifest create mode 100644 Source/Demos/Demo.Platformer/Content/Content.mgcb create mode 100644 Source/Demos/Demo.Platformer/Content/level-1.tmx create mode 100644 Source/Demos/Demo.Platformer/Content/logo-square-128.png create mode 100644 Source/Demos/Demo.Platformer/Content/tiny-characters.png create mode 100644 Source/Demos/Demo.Platformer/Content/tiny-grey-cloud.png create mode 100644 Source/Demos/Demo.Platformer/Content/tiny-tiles.png create mode 100644 Source/Demos/Demo.Platformer/Demo.Platformer.csproj create mode 100644 Source/Demos/Demo.Platformer/Entities/Components/BasicCollisionBody.cs create mode 100644 Source/Demos/Demo.Platformer/Entities/Components/BasicCollisionHandler.cs create mode 100644 Source/Demos/Demo.Platformer/Entities/Components/CharacterState.cs create mode 100644 Source/Demos/Demo.Platformer/Entities/Components/EnemyAi.cs create mode 100644 Source/Demos/Demo.Platformer/Entities/Components/EnemyCollisionHandler.cs create mode 100644 Source/Demos/Demo.Platformer/Entities/Components/PlayerCollisionHandler.cs create mode 100644 Source/Demos/Demo.Platformer/Entities/EntityFactory.cs create mode 100644 Source/Demos/Demo.Platformer/Entities/Systems/BasicCollisionSystem.cs create mode 100644 Source/Demos/Demo.Platformer/Entities/Systems/CharacterStateSystem.cs create mode 100644 Source/Demos/Demo.Platformer/Entities/Systems/EnemyMovementSystem.cs create mode 100644 Source/Demos/Demo.Platformer/Entities/Systems/PlayerMovementSystem.cs create mode 100644 Source/Demos/Demo.Platformer/GameMain.cs create mode 100644 Source/Demos/Demo.Platformer/Icon.bmp create mode 100644 Source/Demos/Demo.Platformer/Icon.ico create mode 100644 Source/Demos/Demo.Platformer/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.Platformer/OpenTK.dll.config create mode 100644 Source/Demos/Demo.Platformer/Program.cs create mode 100644 Source/Demos/Demo.Platformer/Properties/AssemblyInfo.cs create mode 100644 Source/Demos/Demo.Platformer/Screens/GameScreen.cs create mode 100644 Source/Demos/Demo.Platformer/Services/TiledObjectToEntityService.cs create mode 100644 Source/Demos/Demo.Platformer/app.config create mode 100644 Source/Demos/Demo.Platformer/app.manifest create mode 100644 Source/Demos/Demo.Platformer/packages.config create mode 100644 Source/Demos/Demo.SceneGraphs/Icon.bmp create mode 100644 Source/Demos/Demo.SceneGraphs/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.SceneGraphs/app.manifest create mode 100644 Source/Demos/Demo.Screens/Content/Content.mgcb create mode 100644 Source/Demos/Demo.Screens/Content/logo-square-128.png create mode 100644 Source/Demos/Demo.Screens/Content/montserrat-32.fnt create mode 100644 Source/Demos/Demo.Screens/Content/montserrat-32_0.png create mode 100644 Source/Demos/Demo.Screens/Demo.Screens.csproj create mode 100644 Source/Demos/Demo.Screens/Game1.cs create mode 100644 Source/Demos/Demo.Screens/Icon.bmp create mode 100644 Source/Demos/Demo.Screens/Icon.ico create mode 100644 Source/Demos/Demo.Screens/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.Screens/OpenTK.dll.config create mode 100644 Source/Demos/Demo.Screens/Program.cs create mode 100644 Source/Demos/Demo.Screens/Properties/AssemblyInfo.cs create mode 100644 Source/Demos/Demo.Screens/Screens/AudioOptionsScreen.cs create mode 100644 Source/Demos/Demo.Screens/Screens/KeyboardOptionsScreen.cs create mode 100644 Source/Demos/Demo.Screens/Screens/LoadGameScreen.cs create mode 100644 Source/Demos/Demo.Screens/Screens/MainMenuScreen.cs create mode 100644 Source/Demos/Demo.Screens/Screens/MenuItem.cs create mode 100644 Source/Demos/Demo.Screens/Screens/MenuScreen.cs create mode 100644 Source/Demos/Demo.Screens/Screens/MouseOptionsScreen.cs create mode 100644 Source/Demos/Demo.Screens/Screens/OptionsScreen.cs create mode 100644 Source/Demos/Demo.Screens/Screens/VideoOptionsScreen.cs create mode 100644 Source/Demos/Demo.Screens/app.config create mode 100644 Source/Demos/Demo.Screens/app.manifest create mode 100644 Source/Demos/Demo.Screens/packages.config delete mode 100644 Source/Demos/Demo.SpaceGame/Content/Fonts/courier-new-32.fnt delete mode 100644 Source/Demos/Demo.SpaceGame/Content/Fonts/courier-new-32_0.png create mode 100644 Source/Demos/Demo.SpaceGame/Content/Fonts/montserrat-32.fnt create mode 100644 Source/Demos/Demo.SpaceGame/Content/Fonts/montserrat-32_0.png create mode 100644 Source/Demos/Demo.SpaceGame/Icon.bmp create mode 100644 Source/Demos/Demo.SpaceGame/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.SpaceGame/app.manifest delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_1.png delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_2.png delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_3.png delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_4.png delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_Couds.png delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_Sky.png create mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Project1.mgcf create mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Sprites/motw.png delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Sprites/shadedDark42.png delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Sprites/stump.png delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/isometric.tmx delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-atlas.json delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-left-down.tmx delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-left-up.tmx delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-map1.tmx delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-right-down.tmx delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-right-up.tmx delete mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset.png create mode 100644 Source/Demos/Demo.SpriteSheetAnimations/Icon.bmp create mode 100644 Source/Demos/Demo.SpriteSheetAnimations/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.SpriteSheetAnimations/app.manifest create mode 100644 Source/Demos/Demo.Sprites/Content/clipping-test.png create mode 100644 Source/Demos/Demo.Sprites/Icon.bmp create mode 100644 Source/Demos/Demo.Sprites/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.Sprites/app.manifest create mode 100644 Source/Demos/Demo.TiledMaps/Content/L05TS1.png create mode 100644 Source/Demos/Demo.TiledMaps/Content/Thumbs.db create mode 100644 Source/Demos/Demo.TiledMaps/Content/alphacolortile.png create mode 100644 Source/Demos/Demo.TiledMaps/Content/isometric-tiles.png create mode 100644 Source/Demos/Demo.TiledMaps/Content/level02.tmx create mode 100644 Source/Demos/Demo.TiledMaps/Content/level03.tmx create mode 100644 Source/Demos/Demo.TiledMaps/Content/level04.tmx create mode 100644 Source/Demos/Demo.TiledMaps/Content/level05.tmx create mode 100644 Source/Demos/Demo.TiledMaps/Content/level06.tmx create mode 100644 Source/Demos/Demo.TiledMaps/Content/level07.tmx create mode 100644 Source/Demos/Demo.TiledMaps/Content/non-uniform-tileset.png delete mode 100644 Source/Demos/Demo.TiledMaps/Content/untitled.tmx create mode 100644 Source/Demos/Demo.TiledMaps/CustomEffect.cs create mode 100644 Source/Demos/Demo.TiledMaps/Icon.bmp create mode 100644 Source/Demos/Demo.TiledMaps/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.TiledMaps/app.manifest create mode 100644 Source/Demos/Demo.ViewportAdapters/Icon.bmp create mode 100644 Source/Demos/Demo.ViewportAdapters/MonoGame.Framework.dll.config create mode 100644 Source/Demos/Demo.ViewportAdapters/app.manifest rename {ProjectTemplates => Source/Demos/DemoProjectTemplate}/MonoGame.Extended Demo Project.zip (100%) rename {ProjectTemplates => Source/Demos/DemoProjectTemplate}/README.md (100%) create mode 100644 Source/Demos/README.md create mode 100644 Source/MonoGame.Extended.Animations.nuspec create mode 100644 Source/MonoGame.Extended.Animations/AnimatedSprite.cs create mode 100644 Source/MonoGame.Extended.Animations/Animation.cs create mode 100644 Source/MonoGame.Extended.Animations/AnimationComponent.cs create mode 100644 Source/MonoGame.Extended.Animations/MonoGame.Extended.Animations.csproj create mode 100644 Source/MonoGame.Extended.Animations/Properties/AssemblyInfo.cs create mode 100644 Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimation.cs create mode 100644 Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationData.cs create mode 100644 Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationFactory.cs create mode 100644 Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationFactoryReader.cs create mode 100644 Source/MonoGame.Extended.Animations/packages.config rename Source/{MonoGame.Extended/Collisions => MonoGame.Extended.Collisions}/CollisionActor.cs (95%) rename Source/{MonoGame.Extended/Collisions => MonoGame.Extended.Collisions}/CollisionGrid.cs (75%) rename Source/{MonoGame.Extended/Collisions => MonoGame.Extended.Collisions}/CollisionGridCell.cs (95%) rename Source/{MonoGame.Extended/Collisions => MonoGame.Extended.Collisions}/CollisionGridCellFlag.cs (100%) rename Source/{MonoGame.Extended/Collisions => MonoGame.Extended.Collisions}/CollisionInfo.cs (88%) rename Source/{MonoGame.Extended/Collisions => MonoGame.Extended.Collisions}/CollisionWorld.cs (81%) create mode 100644 Source/MonoGame.Extended.Collisions/CollisionWorldExtensions.cs rename Source/{MonoGame.Extended/Collisions => MonoGame.Extended.Collisions}/IActorTarget.cs (91%) create mode 100644 Source/MonoGame.Extended.Collisions/MonoGame.Extended.Collisions.csproj create mode 100644 Source/MonoGame.Extended.Collisions/Properties/AssemblyInfo.cs create mode 100644 Source/MonoGame.Extended.Collisions/packages.config rename Source/{MonoGame.Extended.Content.Pipeline/Animations => MonoGame.Extended.Content.Pipeline.Animations}/AstridAnimatorAnimation.cs (68%) rename Source/{MonoGame.Extended.Content.Pipeline/Animations => MonoGame.Extended.Content.Pipeline.Animations}/AstridAnimatorFile.cs (99%) rename Source/{MonoGame.Extended.Content.Pipeline/Animations => MonoGame.Extended.Content.Pipeline.Animations}/AstridAnimatorImporter.cs (56%) rename Source/{MonoGame.Extended.Content.Pipeline/Animations => MonoGame.Extended.Content.Pipeline.Animations}/AstridAnimatorProcessor.cs (71%) rename Source/{MonoGame.Extended.Content.Pipeline/Animations => MonoGame.Extended.Content.Pipeline.Animations}/AstridAnimatorProcessorResult.cs (92%) rename Source/{MonoGame.Extended.Content.Pipeline/Animations => MonoGame.Extended.Content.Pipeline.Animations}/AstridAnimatorWriter.cs (80%) create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Animations/MonoGame.Extended.Content.Pipeline.Animations.csproj create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Animations/MonoGame.Framework.dll.config create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Animations/Properties/AssemblyInfo.cs create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Animations/packages.config create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Graphics/MonoGame.Extended.Content.Pipeline.Graphics.csproj create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Graphics/Properties/AssemblyInfo.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/isometric_tileset.png delete mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tests/TiledMapImporterProcessorTests.cs create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Graphics/TiledMapLayerAnimatedModelContent.cs create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Graphics/TiledMapLayerModelContent.cs create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/MonoGame.Extended.Content.Pipeline.Tiled.csproj create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Properties/AssemblyInfo.cs create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/ContentWriterExtensions.cs rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxMap.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapContent.cs} (50%) rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxEllipse.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapEllipseContent.cs} (62%) rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxImage.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImageContent.cs} (80%) rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxImageLayer.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImageLayerContent.cs} (57%) create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImporter.cs create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapLayerContent.cs rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxObject.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectContent.cs} (71%) create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectDrawOrderContent.cs create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectLayerContent.cs create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapOrientationContent.cs rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxPolygon.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPolygonContent.cs} (82%) rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxPolyline.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPolylineContent.cs} (82%) create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapProcessor.cs rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxProperty.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPropertyContent.cs} (71%) rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxTerrain.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTerrainContent.cs} (60%) create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileDrawOrderContent.cs rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxTileLayer.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileLayerContent.cs} (60%) rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxData.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileLayerDataContent.cs} (57%) create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileOffsetContent.cs rename Source/{MonoGame.Extended.Content.Pipeline/Tiled/TmxTileset.cs => MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetContent.cs} (51%) create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetTileAnimationFrameContent.cs create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetTileContent.cs create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapWriter.cs create mode 100644 Source/MonoGame.Extended.Content.Pipeline.Tiled/packages.config create mode 100644 Source/MonoGame.Extended.Content.Pipeline/ContentLogger.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline/PathHelper.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline/Tiled/TiledMapImporter.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline/Tiled/TiledMapProcessorResult.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline/Tiled/TiledMapWriter.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxDataTile.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxLayer.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxObjectGroup.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxOrientation.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxRenderOrder.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxTile.cs delete mode 100644 Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxTileOffset.cs create mode 100644 Source/MonoGame.Extended.Entities.nuspec create mode 100644 Source/MonoGame.Extended.Entities/Components/EntityComponent.cs create mode 100644 Source/MonoGame.Extended.Entities/Entity.cs create mode 100644 Source/MonoGame.Extended.Entities/EntityComponentSystem.cs create mode 100644 Source/MonoGame.Extended.Entities/MonoGame.Extended.Entities.csproj create mode 100644 Source/MonoGame.Extended.Entities/Properties/AssemblyInfo.cs create mode 100644 Source/MonoGame.Extended.Entities/Systems/AnimatedSpriteSystem.cs create mode 100644 Source/MonoGame.Extended.Entities/Systems/ComponentSystem.cs create mode 100644 Source/MonoGame.Extended.Entities/Systems/ParticleEmitterSystem.cs create mode 100644 Source/MonoGame.Extended.Entities/Systems/SpriteBatchSystem.cs create mode 100644 Source/MonoGame.Extended.Entities/packages.config create mode 100644 Source/MonoGame.Extended.Graphics.nuspec create mode 100644 Source/MonoGame.Extended.Graphics/Batcher.cs create mode 100644 Source/MonoGame.Extended.Graphics/Batcher2D.cs create mode 100644 Source/MonoGame.Extended.Graphics/Effects/DefaultEffect.cs create mode 100644 Source/MonoGame.Extended.Graphics/Effects/EffectResource.cs create mode 100644 Source/MonoGame.Extended.Graphics/Effects/ITextureEffect.cs create mode 100644 Source/MonoGame.Extended.Graphics/Effects/MatrixChainEffect.cs create mode 100644 Source/MonoGame.Extended.Graphics/Effects/Resources/DefaultEffect.dx11.mgfxo create mode 100644 Source/MonoGame.Extended.Graphics/Effects/Resources/DefaultEffect.fx create mode 100644 Source/MonoGame.Extended.Graphics/Effects/Resources/DefaultEffect.ogl.mgfxo create mode 100644 Source/MonoGame.Extended.Graphics/Effects/Resources/Macros.fxh create mode 100644 Source/MonoGame.Extended.Graphics/Effects/Resources/RebuildEffects.bat create mode 100644 Source/MonoGame.Extended.Graphics/Effects/Resources/Structures.fxh create mode 100644 Source/MonoGame.Extended.Graphics/FlipFlags.cs create mode 100644 Source/MonoGame.Extended.Graphics/Geometry/GeometryBuilder.cs create mode 100644 Source/MonoGame.Extended.Graphics/Geometry/GeometryBuilder2D.cs create mode 100644 Source/MonoGame.Extended.Graphics/IBatchDrawCallInfo.cs create mode 100644 Source/MonoGame.Extended.Graphics/IMatrixChainEffect.cs create mode 100644 Source/MonoGame.Extended.Graphics/MonoGame.Extended.Graphics.csproj create mode 100644 Source/MonoGame.Extended.Graphics/PrimitiveTypeExtensions.cs create mode 100644 Source/MonoGame.Extended.Graphics/Properties/AssemblyInfo.cs rename Source/{MonoGame.Extended => MonoGame.Extended.Graphics}/RenderTarget2DExtensions.cs (87%) create mode 100644 Source/MonoGame.Extended.Graphics/packages.config create mode 100644 Source/MonoGame.Extended.Gui.nuspec create mode 100644 Source/MonoGame.Extended.Gui/Controls/GuiButton.cs create mode 100644 Source/MonoGame.Extended.Gui/Controls/GuiCheckBox.cs create mode 100644 Source/MonoGame.Extended.Gui/Controls/GuiControl.cs create mode 100644 Source/MonoGame.Extended.Gui/Controls/GuiControlCollection.cs create mode 100644 Source/MonoGame.Extended.Gui/Controls/GuiImage.cs create mode 100644 Source/MonoGame.Extended.Gui/Controls/GuiLabel.cs create mode 100644 Source/MonoGame.Extended.Gui/Controls/GuiPanel.cs create mode 100644 Source/MonoGame.Extended.Gui/Controls/GuiProgressBar.cs create mode 100644 Source/MonoGame.Extended.Gui/Controls/GuiTextBox.cs create mode 100644 Source/MonoGame.Extended.Gui/GuiControlFactory.cs create mode 100644 Source/MonoGame.Extended.Gui/GuiControlStyle.cs create mode 100644 Source/MonoGame.Extended.Gui/GuiCursor.cs create mode 100644 Source/MonoGame.Extended.Gui/GuiPointerEventArgs.cs create mode 100644 Source/MonoGame.Extended.Gui/GuiScreen.cs create mode 100644 Source/MonoGame.Extended.Gui/GuiSkin.cs create mode 100644 Source/MonoGame.Extended.Gui/GuiSpriteBatchRenderer.cs create mode 100644 Source/MonoGame.Extended.Gui/GuiSystem.cs create mode 100644 Source/MonoGame.Extended.Gui/Keepers/GuiAlignmentHelper.cs create mode 100644 Source/MonoGame.Extended.Gui/MonoGame.Extended.Gui.csproj create mode 100644 Source/MonoGame.Extended.Gui/Properties/AssemblyInfo.cs create mode 100644 Source/MonoGame.Extended.Gui/Serialization/GuiControlJsonConverter.cs create mode 100644 Source/MonoGame.Extended.Gui/Serialization/GuiControlStyleJsonConverter.cs create mode 100644 Source/MonoGame.Extended.Gui/Serialization/GuiJsonContractResolver.cs create mode 100644 Source/MonoGame.Extended.Gui/Serialization/GuiJsonSerializer.cs create mode 100644 Source/MonoGame.Extended.Gui/Serialization/GuiNinePatchRegion2DJsonConverter.cs create mode 100644 Source/MonoGame.Extended.Gui/Serialization/GuiSkinJsonConverter.cs create mode 100644 Source/MonoGame.Extended.Gui/Serialization/GuiTextureAtlasJsonConverter.cs create mode 100644 Source/MonoGame.Extended.Gui/Serialization/GuiTextureRegionService.cs create mode 100644 Source/MonoGame.Extended.Gui/packages.config create mode 100644 Source/MonoGame.Extended.Input.nuspec create mode 100644 Source/MonoGame.Extended.Input/ExtendedPlayerIndex.cs rename Source/{MonoGame.Extended => MonoGame.Extended.Input}/InputListeners/GamePadEventArgs.cs (66%) rename Source/{MonoGame.Extended => MonoGame.Extended.Input}/InputListeners/GamePadListener.cs (59%) create mode 100644 Source/MonoGame.Extended.Input/InputListeners/GamePadListenerSettings.cs create mode 100644 Source/MonoGame.Extended.Input/InputListeners/IInputService.cs create mode 100644 Source/MonoGame.Extended.Input/InputListeners/InputListener.cs create mode 100644 Source/MonoGame.Extended.Input/InputListeners/InputListenerComponent.cs rename Source/{MonoGame.Extended => MonoGame.Extended.Input}/InputListeners/InputListenerSettings.cs (50%) create mode 100644 Source/MonoGame.Extended.Input/InputListeners/KeyboardEventArgs.cs rename Source/{MonoGame.Extended => MonoGame.Extended.Input}/InputListeners/KeyboardListener.cs (76%) rename Source/{MonoGame.Extended => MonoGame.Extended.Input}/InputListeners/KeyboardListenerSettings.cs (80%) rename Source/{MonoGame.Extended => MonoGame.Extended.Input}/InputListeners/KeyboardModifiers.cs (72%) rename Source/{MonoGame.Extended => MonoGame.Extended.Input}/InputListeners/MouseButton.cs (61%) rename Source/{MonoGame.Extended => MonoGame.Extended.Input}/InputListeners/MouseEventArgs.cs (66%) rename Source/{MonoGame.Extended => MonoGame.Extended.Input}/InputListeners/MouseListener.cs (70%) rename Source/{MonoGame.Extended => MonoGame.Extended.Input}/InputListeners/MouseListenerSettings.cs (67%) create mode 100644 Source/MonoGame.Extended.Input/InputListeners/TouchEventArgs.cs create mode 100644 Source/MonoGame.Extended.Input/InputListeners/TouchListener.cs create mode 100644 Source/MonoGame.Extended.Input/InputListeners/TouchListenerSettings.cs create mode 100644 Source/MonoGame.Extended.Input/MonoGame.Extended.Input.csproj create mode 100644 Source/MonoGame.Extended.Input/Properties/AssemblyInfo.cs create mode 100644 Source/MonoGame.Extended.Input/packages.config create mode 100644 Source/MonoGame.Extended.NuclexGui.nuspec create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiButtonControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiChoiceControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiCloseWindowButtonControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiDraggableControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiHorizontalSliderControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiInputControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiListControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiOptionControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiSliderControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiVerticalSliderControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiWindowControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IListRowLocator.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IOpeningLocator.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IThumbLocator.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/GuiControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/GuiControlEventArgs.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/GuiControlInput.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/GuiDesktopControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/GuiLabelControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/GuiPressableControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/GuiProgressControl.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/IFocusable.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/IWritable.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Controls/ParentingControlCollection.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/GuiManager.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/GuiScreen.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/IGuiInputService.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/IGuiService.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Input/Command.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Input/DefaultInputCapturer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Input/IInputCapturer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Input/IInputReceiver.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/MonoGame.Extended.NuclexGui.csproj create mode 100644 Source/MonoGame.Extended.NuclexGui/Properties/AssemblyInfo.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Resources/Skins/DefaultFont.xnb create mode 100644 Source/MonoGame.Extended.NuclexGui/Resources/Skins/SuaveSheet.xnb create mode 100644 Source/MonoGame.Extended.NuclexGui/Resources/Skins/SuaveSkin.json create mode 100644 Source/MonoGame.Extended.NuclexGui/Resources/Skins/TitleFont.xnb create mode 100644 Source/MonoGame.Extended.NuclexGui/Support/EnumHelper.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Support/WeakReference.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/UniRectangle.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/UniScalar.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/UniVector.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiGraphics.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiGraphicsDrawing.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiVisualizer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/GuiSkin.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/GuiSkinConverters.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/IFlatControlRenderer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/IFlatGuiGraphics.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/OpeningLocator.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatButtonControlRenderer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatChoiceControlRenderer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatHorizontalSliderControlRenderer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatInputControlRenderer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatLabelControlRenderer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatListControlRenderer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatOptionControlRenderer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatProgressControlRenderer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatVerticalSliderControlRenderer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatWindowControlRenderer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/Visuals/IGuiVisualizer.cs create mode 100644 Source/MonoGame.Extended.NuclexGui/packages.config create mode 100644 Source/MonoGame.Extended.Particles.nuspec rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/ColorExtensions.cs (54%) create mode 100644 Source/MonoGame.Extended.Particles/FastRandomExtensions.cs rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/HslColor.cs (53%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/LineSegment.cs (54%) create mode 100644 Source/MonoGame.Extended.Particles/Modifiers/AgeModifier.cs rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Modifiers/Containers/CircleContainerModifier.cs (81%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Modifiers/Containers/RectangleContainerModifier.cs (56%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Modifiers/Containers/RectangleLoopContainerModifier.cs (54%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Modifiers/DragModifier.cs (69%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Modifiers/IModifier.cs (100%) create mode 100644 Source/MonoGame.Extended.Particles/Modifiers/Interpolators/ColorInterpolator.cs create mode 100644 Source/MonoGame.Extended.Particles/Modifiers/Interpolators/HueInterpolator.cs create mode 100644 Source/MonoGame.Extended.Particles/Modifiers/Interpolators/IInterpolator.cs create mode 100644 Source/MonoGame.Extended.Particles/Modifiers/Interpolators/OpacityInterpolator.cs create mode 100644 Source/MonoGame.Extended.Particles/Modifiers/Interpolators/RotationInterpolator.cs create mode 100644 Source/MonoGame.Extended.Particles/Modifiers/Interpolators/ScaleInterpolator.cs rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Modifiers/LinearGravityModifier.cs (65%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Modifiers/OpacityFastFadeModifier.cs (100%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Modifiers/RotationModifier.cs (87%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Modifiers/VelocityColorModifier.cs (61%) create mode 100644 Source/MonoGame.Extended.Particles/Modifiers/VelocityModifier.cs rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Modifiers/VortexModifier.cs (83%) create mode 100644 Source/MonoGame.Extended.Particles/MonoGame.Extended.Particles.csproj rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Particle.cs (100%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/ParticleBuffer.cs (85%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/ParticleEffect.cs (100%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/ParticleEmitter.cs (67%) rename Source/{MonoGame.Extended/Particles/SpriteBatchExtensions.cs => MonoGame.Extended.Particles/ParticleExtensions.cs} (64%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/ParticleModifierExecutionStrategy.cs (79%) create mode 100644 Source/MonoGame.Extended.Particles/ParticleReleaseParameters.cs rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Profiles/BoxFillProfile.cs (55%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Profiles/BoxProfile.cs (52%) create mode 100644 Source/MonoGame.Extended.Particles/Profiles/BoxUniformProfile.cs rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Profiles/CircleProfile.cs (56%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Profiles/LineProfile.cs (61%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Profiles/PointProfile.cs (77%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Profiles/Profile.cs (54%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Profiles/RingProfile.cs (65%) rename Source/{MonoGame.Extended/Particles => MonoGame.Extended.Particles}/Profiles/SprayProfile.cs (50%) create mode 100644 Source/MonoGame.Extended.Particles/Properties/AssemblyInfo.cs create mode 100644 Source/MonoGame.Extended.Particles/packages.config create mode 100644 Source/MonoGame.Extended.SceneGraphs.nuspec create mode 100644 Source/MonoGame.Extended.SceneGraphs/ISceneEntity.cs create mode 100644 Source/MonoGame.Extended.SceneGraphs/MonoGame.Extended.SceneGraphs.csproj create mode 100644 Source/MonoGame.Extended.SceneGraphs/Properties/AssemblyInfo.cs rename Source/{MonoGame.Extended/SceneGraphs => MonoGame.Extended.SceneGraphs}/SceneEntityCollection.cs (60%) rename Source/{MonoGame.Extended/SceneGraphs => MonoGame.Extended.SceneGraphs}/SceneGraph.cs (83%) rename Source/{MonoGame.Extended/SceneGraphs/SpriteBatchExtensions.cs => MonoGame.Extended.SceneGraphs/SceneGraphExtensions.cs} (84%) create mode 100644 Source/MonoGame.Extended.SceneGraphs/SceneNode.cs rename Source/{MonoGame.Extended/SceneGraphs => MonoGame.Extended.SceneGraphs}/SceneNodeCollection.cs (100%) create mode 100644 Source/MonoGame.Extended.SceneGraphs/packages.config delete mode 100644 Source/MonoGame.Extended.Tests/Shapes/CircleTests.cs create mode 100644 Source/MonoGame.Extended.Tiled.nuspec create mode 100644 Source/MonoGame.Extended.Tiled/Graphics/Effects/ITiledMapEffect.cs create mode 100644 Source/MonoGame.Extended.Tiled/Graphics/Effects/TiledMapEffect.cs create mode 100644 Source/MonoGame.Extended.Tiled/Graphics/TiledMapLayerAnimatedModel.cs create mode 100644 Source/MonoGame.Extended.Tiled/Graphics/TiledMapLayerModel.cs create mode 100644 Source/MonoGame.Extended.Tiled/Graphics/TiledMapRenderer.cs create mode 100644 Source/MonoGame.Extended.Tiled/MonoGame.Extended.Tiled.csproj create mode 100644 Source/MonoGame.Extended.Tiled/Properties/AssemblyInfo.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/ContentReaderExtensions.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMap.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapEllipseObject.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapHelper.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapImageLayer.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapLayer.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapLayerType.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapObject.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectDrawOrder.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectLayer.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectType.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapOrientation.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapPolygonObject.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapPolylineObject.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapProperties.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapReader.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapRectangleObject.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapTile.cs rename Source/{MonoGame.Extended/Maps/Tiled/TiledRenderOrder.cs => MonoGame.Extended.Tiled/Tiled/TiledMapTileDrawOrder.cs} (51%) create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileFlipFlags.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileLayer.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileObject.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileset.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetAnimatedTile.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetTile.cs create mode 100644 Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetTileAnimationFrame.cs create mode 100644 Source/MonoGame.Extended.Tiled/packages.config create mode 100644 Source/MonoGame.Extended.Tweening.nuspec create mode 100644 Source/MonoGame.Extended.Tweening/DelayTween.cs create mode 100644 Source/MonoGame.Extended.Tweening/EasingFunctions.cs create mode 100644 Source/MonoGame.Extended.Tweening/FluentTweening.cs create mode 100644 Source/MonoGame.Extended.Tweening/MonoGame.Extended.Tweening.csproj create mode 100644 Source/MonoGame.Extended.Tweening/Properties/AssemblyInfo.cs create mode 100644 Source/MonoGame.Extended.Tweening/PropertyTween.cs create mode 100644 Source/MonoGame.Extended.Tweening/TweenAnimation.cs create mode 100644 Source/MonoGame.Extended.Tweening/TweenChain.cs create mode 100644 Source/MonoGame.Extended.Tweening/TweenGroup.cs create mode 100644 Source/MonoGame.Extended.Tweening/TweeningComponent.cs create mode 100644 Source/MonoGame.Extended.Tweening/packages.config create mode 100644 Source/MonoGame.Extended/Angle.cs delete mode 100644 Source/MonoGame.Extended/Animations/SpriteSheetAnimation.cs delete mode 100644 Source/MonoGame.Extended/Animations/SpriteSheetAnimationGroup.cs delete mode 100644 Source/MonoGame.Extended/Animations/SpriteSheetAnimationGroupReader.cs delete mode 100644 Source/MonoGame.Extended/Animations/SpriteSheetAnimator.cs create mode 100644 Source/MonoGame.Extended/BoundingRectangle.cs create mode 100644 Source/MonoGame.Extended/CircleF.cs create mode 100644 Source/MonoGame.Extended/Collections/BitVector32.cs create mode 100644 Source/MonoGame.Extended/Collections/DictionaryExtensions.cs create mode 100644 Source/MonoGame.Extended/Collections/IObservableCollection.cs create mode 100644 Source/MonoGame.Extended/Collections/ItemEventArgs.cs create mode 100644 Source/MonoGame.Extended/Collections/ObservableCollection.cs create mode 100644 Source/MonoGame.Extended/ColorExtensions.cs create mode 100644 Source/MonoGame.Extended/ColorHelper.cs create mode 100644 Source/MonoGame.Extended/EllipseF.cs delete mode 100644 Source/MonoGame.Extended/EventHandlerExtensions.cs create mode 100644 Source/MonoGame.Extended/FastRandom.cs create mode 100644 Source/MonoGame.Extended/FloatHelper.cs create mode 100644 Source/MonoGame.Extended/IColorable.cs delete mode 100644 Source/MonoGame.Extended/IDraw.cs create mode 100644 Source/MonoGame.Extended/IEquatableByRef.cs create mode 100644 Source/MonoGame.Extended/IRectangular.cs create mode 100644 Source/MonoGame.Extended/ISizable.cs delete mode 100644 Source/MonoGame.Extended/InputListeners/GamePadListenerSettings.cs delete mode 100644 Source/MonoGame.Extended/InputListeners/InputListener.cs delete mode 100644 Source/MonoGame.Extended/InputListeners/InputListenerManager.cs delete mode 100644 Source/MonoGame.Extended/InputListeners/KeyboardEventArgs.cs delete mode 100644 Source/MonoGame.Extended/InputListeners/TouchEventArgs.cs delete mode 100644 Source/MonoGame.Extended/InputListeners/TouchListener.cs delete mode 100644 Source/MonoGame.Extended/InputListeners/TouchListenerSettings.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/CollisionWorldExtensions.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/SpriteBatchExtensions.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/TiledImageLayer.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/TiledLayer.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/TiledMap.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/TiledMapOrientation.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/TiledMapReader.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/TiledObject.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/TiledObjectGroup.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/TiledProperties.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/TiledTile.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/TiledTileLayer.cs delete mode 100644 Source/MonoGame.Extended/Maps/Tiled/TiledTileSet.cs create mode 100644 Source/MonoGame.Extended/Matrix2D.cs delete mode 100644 Source/MonoGame.Extended/Particles/Axis.cs delete mode 100644 Source/MonoGame.Extended/Particles/ColorRange.cs delete mode 100644 Source/MonoGame.Extended/Particles/FastRand.cs delete mode 100644 Source/MonoGame.Extended/Particles/Modifiers/ColorInterpolator2.cs delete mode 100644 Source/MonoGame.Extended/Particles/Modifiers/HueInterpolator2.cs delete mode 100644 Source/MonoGame.Extended/Particles/Modifiers/OpacityInterpolator2.cs delete mode 100644 Source/MonoGame.Extended/Particles/Modifiers/ScaleInterpolator2.cs delete mode 100644 Source/MonoGame.Extended/Particles/Modifiers/VelocityHueModifier.cs delete mode 100644 Source/MonoGame.Extended/Particles/ParticleReleaseParameters.cs delete mode 100644 Source/MonoGame.Extended/Particles/Profiles/BoxUniformProfile.cs delete mode 100644 Source/MonoGame.Extended/Particles/Range.cs delete mode 100644 Source/MonoGame.Extended/Particles/RangeF.cs delete mode 100644 Source/MonoGame.Extended/Particles/Vector2Extensions.cs create mode 100644 Source/MonoGame.Extended/Point2.cs create mode 100644 Source/MonoGame.Extended/PrimitivesHelper.cs create mode 100644 Source/MonoGame.Extended/RandomExtensions.cs create mode 100644 Source/MonoGame.Extended/Range.cs create mode 100644 Source/MonoGame.Extended/Ray2D.cs create mode 100644 Source/MonoGame.Extended/RectangleExtensions.cs create mode 100644 Source/MonoGame.Extended/RectangleF.cs delete mode 100644 Source/MonoGame.Extended/SceneGraphs/SceneNode.cs create mode 100644 Source/MonoGame.Extended/Screens/Screen.cs create mode 100644 Source/MonoGame.Extended/Screens/ScreenComponent.cs create mode 100644 Source/MonoGame.Extended/Segment2D.cs create mode 100644 Source/MonoGame.Extended/Serialization/ColorJsonConverter.cs create mode 100644 Source/MonoGame.Extended/Serialization/ContentManagerJsonConverter.cs create mode 100644 Source/MonoGame.Extended/Serialization/ITextureRegionService.cs create mode 100644 Source/MonoGame.Extended/Serialization/NinePatchRegion2DJsonConverter.cs create mode 100644 Source/MonoGame.Extended/Serialization/Size2JsonConverter.cs create mode 100644 Source/MonoGame.Extended/Serialization/TextureRegion2DJsonConverter.cs create mode 100644 Source/MonoGame.Extended/Serialization/ThicknessJsonConverter.cs create mode 100644 Source/MonoGame.Extended/Serialization/Vector2JsonConverter.cs rename Source/MonoGame.Extended/{Shapes/SpriteBatchExtensions.cs => ShapeExtensions.cs} (77%) delete mode 100644 Source/MonoGame.Extended/Shapes/CircleF.cs rename Source/MonoGame.Extended/Shapes/{PolygonF.cs => Polygon.cs} (67%) create mode 100644 Source/MonoGame.Extended/Shapes/Polyline.cs delete mode 100644 Source/MonoGame.Extended/Shapes/RectangleExtensions.cs delete mode 100644 Source/MonoGame.Extended/Shapes/RectangleF.cs delete mode 100644 Source/MonoGame.Extended/Shapes/ShapeF.cs create mode 100644 Source/MonoGame.Extended/SimpleDrawableGameComponent.cs create mode 100644 Source/MonoGame.Extended/SimpleGameComponent.cs delete mode 100644 Source/MonoGame.Extended/Size.cs create mode 100644 Source/MonoGame.Extended/Size2.cs rename Source/MonoGame.Extended/{SceneGraphs/ISceneEntity.cs => Sprites/ISpriteBatchDrawable.cs} (67%) delete mode 100644 Source/MonoGame.Extended/Sprites/SpriteAnimator.cs delete mode 100644 Source/MonoGame.Extended/Sprites/SpriteBatchExtensions.cs create mode 100644 Source/MonoGame.Extended/Sprites/SpriteExtensions.cs create mode 100644 Source/MonoGame.Extended/TextureAtlases/NinePatchRegion2D.cs delete mode 100644 Source/MonoGame.Extended/TextureAtlases/SpriteBatchExtensions.cs create mode 100644 Source/MonoGame.Extended/TextureAtlases/TextureAtlasExtensions.cs create mode 100644 Source/MonoGame.Extended/Thickness.cs create mode 100644 Source/MonoGame.Extended/Transform.cs create mode 100644 Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/MonoGame.Extended.Content.Pipeline.Tests.Tiled.csproj create mode 100644 Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/Properties/AssemblyInfo.cs rename Source/{MonoGame.Extended.Content.Pipeline.Tests => Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled}/TestData/isometric.tmx (100%) rename Source/{Demos/Demo.SpriteSheetAnimations/Content/Tilesets => Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData}/isometric_tileset.png (100%) rename Source/{MonoGame.Extended.Content.Pipeline.Tests => Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled}/TestData/level01.tmx (99%) rename Source/{MonoGame.Extended.Content.Pipeline.Tests => Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled}/TestData/test-object-layer.tmx (100%) rename Source/{MonoGame.Extended.Content.Pipeline.Tests => Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled}/TestData/test-tileset-base64.tmx (100%) rename Source/{MonoGame.Extended.Content.Pipeline.Tests => Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled}/TestData/test-tileset-csv.tmx (100%) rename Source/{MonoGame.Extended.Content.Pipeline.Tests => Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled}/TestData/test-tileset-gzip.tmx (100%) rename Source/{MonoGame.Extended.Content.Pipeline.Tests => Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled}/TestData/test-tileset-xml.tmx (100%) rename Source/{MonoGame.Extended.Content.Pipeline.Tests => Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled}/TestData/test-tileset-zlib.tmx (100%) create mode 100644 Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TiledMapImporterProcessorTests.cs rename Source/{MonoGame.Extended.Content.Pipeline.Tests => Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled}/packages.config (63%) rename Source/{ => Tests}/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorImporterTests.cs (97%) rename Source/{ => Tests}/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorProcessorTests.cs (96%) rename Source/{ => Tests}/MonoGame.Extended.Content.Pipeline.Tests/MonoGame.Extended.Content.Pipeline.Tests.csproj (67%) rename Source/{ => Tests}/MonoGame.Extended.Content.Pipeline.Tests/Properties/AssemblyInfo.cs (100%) rename Source/{ => Tests}/MonoGame.Extended.Content.Pipeline.Tests/TestData/astrid-animator-atlas.json (100%) rename Source/{ => Tests}/MonoGame.Extended.Content.Pipeline.Tests/TestData/astrid-animator.aa (100%) rename Source/{ => Tests}/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset.json (100%) rename Source/{ => Tests}/MonoGame.Extended.Content.Pipeline.Tests/TexturePackerJsonImporterProcessorTests.cs (92%) rename Source/{MonoGame.Extended.Tests => Tests/MonoGame.Extended.Content.Pipeline.Tests}/packages.config (63%) create mode 100644 Source/Tests/MonoGame.Extended.Gui.Tests/Controls/GuiControlCollectionTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Gui.Tests/Controls/GuiPanelTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Gui.Tests/GuiRendererTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Gui.Tests/MonoGame.Extended.Gui.Tests.csproj create mode 100644 Source/Tests/MonoGame.Extended.Gui.Tests/Properties/AssemblyInfo.cs create mode 100644 Source/Tests/MonoGame.Extended.Gui.Tests/packages.config create mode 100644 Source/Tests/MonoGame.Extended.Tests/AngleTest.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/AssertExtensions.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/BitmapFonts/BitmapFontTests.cs rename Source/{ => Tests}/MonoGame.Extended.Tests/Camera2DTests.cs (96%) create mode 100644 Source/Tests/MonoGame.Extended.Tests/Collections/BitVector32Tests.cs rename Source/{ => Tests}/MonoGame.Extended.Tests/Collections/DequeTests.cs (100%) rename Source/{ => Tests}/MonoGame.Extended.Tests/Collections/PoolTests.cs (97%) rename Source/{ => Tests}/MonoGame.Extended.Tests/MockGameWindow.cs (79%) create mode 100644 Source/Tests/MonoGame.Extended.Tests/MonoGame.Extended.Tests.csproj rename Source/{ => Tests}/MonoGame.Extended.Tests/OpenTK.dll.config (100%) create mode 100644 Source/Tests/MonoGame.Extended.Tests/Particles/AssertionModifier.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Particles/ColourTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Particles/EmitterTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Particles/ParticleBufferTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Particles/Profiles/PointProfileTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Particles/Profiles/RingProfileTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Primitives/BoundingRectangleTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Primitives/CircleFTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Primitives/EllipseFTest.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Primitives/Point2Tests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Primitives/Ray2DTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Primitives/RectangleFTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Primitives/Segment2DTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tests/Primitives/Size2Tests.cs rename Source/{ => Tests}/MonoGame.Extended.Tests/Properties/AssemblyInfo.cs (100%) create mode 100644 Source/Tests/MonoGame.Extended.Tests/RangeTests.cs rename Source/{ => Tests}/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs (81%) rename Source/{ => Tests}/MonoGame.Extended.Tests/Sprites/SpriteTests.cs (94%) create mode 100644 Source/Tests/MonoGame.Extended.Tests/TestGraphicsDevice.cs rename Source/{ => Tests}/MonoGame.Extended.Tests/TestHelper.cs (76%) rename Source/{ => Tests}/MonoGame.Extended.Tests/TextureAtlases/TextureAtlasTests.cs (88%) rename Source/{ => Tests}/MonoGame.Extended.Tests/TextureAtlases/TextureRegion2DTests.cs (100%) rename Source/{ => Tests}/MonoGame.Extended.Tests/Vector2ExtensionsTests.cs (85%) rename Source/{ => Tests}/MonoGame.Extended.Tests/ViewportAdapters/BoxingViewportAdapterTests.cs (92%) rename Source/{ => Tests}/MonoGame.Extended.Tests/ViewportAdapters/DefaultViewportAdapterTests.cs (100%) create mode 100644 Source/Tests/MonoGame.Extended.Tests/packages.config create mode 100644 Source/Tests/MonoGame.Extended.Tiled.Tests/FullMapRendererTest.cs rename Source/{MonoGame.Extended.Tests/MonoGame.Extended.Tests.csproj => Tests/MonoGame.Extended.Tiled.Tests/MonoGame.Extended.Tiled.Tests.csproj} (57%) create mode 100644 Source/Tests/MonoGame.Extended.Tiled.Tests/Properties/AssemblyInfo.cs create mode 100644 Source/Tests/MonoGame.Extended.Tiled.Tests/TiledTilesetTests.cs create mode 100644 Source/Tests/MonoGame.Extended.Tiled.Tests/packages.config create mode 100644 mkdocs.yml diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..ee75523f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,72 @@ +# Contributing to MonoGame.Extended + +We're happy that you have chosen to contribute to the MonoGame Extended project. + +You are joining a team of dedicated volunteers that are building an extension library to the game framework [MonoGame](http://www.monogame.net/). + +Please read this document completely before contributing. + + +## How To Contribute + +MonoGame.Extended has a `master` branch for stable releases and a `develop` branch for daily development. New features and fixes are always submitted to the `develop` branch. + +If you are looking for ways to help you should start by looking at the [Open Issues](https://github.com/craftworkgames/MonoGame.Extended/issues). Please let us know if you plan to work on an issue so that others are not duplicating work. + +The MonoGame.Extended project follows standard [GitHub flow](https://guides.github.com/introduction/flow/index.html). You should learn and be familiar with how to [use Git](https://help.github.com/articles/set-up-git/), how to [create a fork of MonoGame.Extended](https://help.github.com/articles/fork-a-repo/), and how to [submit a Pull Request](https://help.github.com/articles/using-pull-requests/). + +After you submit a PR the MonoGame.Extended [build server](http://build.craftworkgames.com/) will build your changes and verify all tests pass. Project maintainers and contributors will review your changes and provide constructive feedback to improve your submission. + +Once satisfied that your changes are good for MonoGame.Extended we will merge it. + + +## Quick Guidelines + +Here are a few simple rules and suggestions to remember when contributing to MonoGame.Extended. + +* :bangbang: **NEVER** commit code that you didn't personally write. +* :bangbang: **NEVER** use decompiler tools to steal code and submit them as your own work. +* :bangbang: **NEVER** decompile XNA assemblies and steal Microsoft's copyrighted code. +* **PLEASE** try keep your PRs focused on a single topic and of a reasonable size or we may ask you to break it up. +* **PLEASE** be sure to write simple and descriptive commit messages. +* **DO NOT** surprise us with new APIs or big new features. Open an issue to discuss your ideas first. +* **DO NOT** reorder type members as it makes it difficult to compare code changes in a PR. +* **DO** give priority to the existing style of the file you're changing. +* **DO** try to add to our [unit tests](Source/MonoGame.Extended.Tests) when adding new features or fixing bugs. +* **DO NOT** send PRs for code style changes or make code changes just for the sake of style. +* **PLEASE** keep a civil and respectful tone when discussing and reviewing contributions. +* **PLEASE** tell others about MonoGame.Extended and your contributions via social media. + + +## Decompiler Tools + +We prohibit tools like dotPeek, ILSpy, JustDecompiler, or .NET Reflector which convert compiled assemblies into readable code. + +It is **NEVER ACCEPTABLE** to decompile copyrighted assemblies and submit that code to the MonoGame.Extended project. + +* It **DOES NOT** matter how much you change the code. +* It **DOES NOT** matter what country you live in or what your local laws say. +* It **DOES NOT** matter that XNA is discontinued. +* It **DOES NOT** matter how small the bit of code you have stolen is. +* It **DOES NOT** matter what your opinion is of stealing code. + +If you did not write the code, you do not have ownership of the code, and you shouldn't submit it to MonoGame.Extended. + +If we find a contribution in violation of copyright it will be immediately removed. We will bar that contributor from the MonoGame.Extended project. + + +## Licensing + +The MonoGame.Extended project is under the [MIT License](https://opensource.org/licenses/MIT) unless a portion of code is explicitly stated elsewhere. See the [LICENSE](LICENSE) for more details. Third-party libraries used by MonoGame.Extended are under their own licenses, we always seek permission from the original author of those libraries.. Please refer to those libraries for details on the license they use. + +We accept contributions in "good faith" that it isn't bound to a conflicting license. By submitting a PR you agree to distribute your work under the MonoGame.Extended license and copyright. + + +## Need More Help? + +If you need help please ask questions on our [community forums](http://community.monogame.net/c/extended) or come [chat on Gitter](https://gitter.im/craftworkgames/MonoGame.Extended). + + +Thanks for reading this guide and helping make MonoGame.Extended great! + + :heart: The MonoGame.Extended Team diff --git a/Dependencies/MonoGame.Framework.dll b/Dependencies/MonoGame.Framework.dll deleted file mode 100644 index deb93c46808c8ef11d8d24a4f461e01af1e391c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190464 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/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 (BuildVersionCodes)19) + { + var decorView = Window.DecorView; + var uiVisibility = (int)decorView.SystemUiVisibility; + var options = uiVisibility; + + options |= (int)SystemUiFlags.LowProfile; + options |= (int)SystemUiFlags.Fullscreen; + options |= (int)SystemUiFlags.HideNavigation; + options |= (int)SystemUiFlags.ImmersiveSticky; + + decorView.SystemUiVisibility = (StatusBarVisibility)options; + } + } + } +} + diff --git a/Source/Demos/Demo.Android/Assets/AboutAssets.txt b/Source/Demos/Demo.Android/Assets/AboutAssets.txt new file mode 100644 index 00000000..ee398862 --- /dev/null +++ b/Source/Demos/Demo.Android/Assets/AboutAssets.txt @@ -0,0 +1,19 @@ +Any raw assets you want to be deployed with your application can be placed in +this directory (and child directories) and given a Build Action of "AndroidAsset". + +These files will be deployed with you package and will be accessible using Android's +AssetManager, like this: + +public class ReadAsset : Activity +{ + protected override void OnCreate (Bundle bundle) + { + base.OnCreate (bundle); + + InputStream input = Assets.Open ("my_asset.txt"); + } +} + +Additionally, some Android functions will automatically load asset files: + +Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); \ No newline at end of file diff --git a/Source/Demos/Demo.Android/Assets/adventure-gui-skin.json b/Source/Demos/Demo.Android/Assets/adventure-gui-skin.json new file mode 100644 index 00000000..e60ffde7 --- /dev/null +++ b/Source/Demos/Demo.Android/Assets/adventure-gui-skin.json @@ -0,0 +1,91 @@ +{ + "Name": "adventure", + "TextureAtlases": [ "adventure-gui-atlas" ], + "Fonts": [ "small-font" ], + "Cursor": { + "TextureRegion": "cursorSword_silver", + "Color": "#aaaaaa" + }, + "NinePatches": [ + { "TextureRegion": "panel_brown", "Padding": "10" }, + { "TextureRegion": "panelInset_beige", "Padding": "10" }, + { "TextureRegion": "grey_textBox", "Padding": "10" }, + { "TextureRegion": "progress-bar-container", "Padding": "10" }, + { "TextureRegion": "progress-bar-blue", "Padding": "10" } + ], + "Styles": [ + { + "Name": "close-button", + "Type": "GuiButton", + "BackgroundRegion": "buttonRound_close", + "HoverStyle": { + "Type": "GuiButton", + "Color": "LightGray" + } + }, + { + "Name": "white-button", + "Type": "GuiButton", + "BackgroundRegion": "buttonLong_grey", + "TextOffset": "0 -2", + "TextColor": "#f4a460ff", + "Color": "#8b4513ff", + "PressedStyle": { + "Type": "GuiButton", + "BackgroundRegion": "buttonLong_grey_pressed", + "TextOffset": "0 2" + }, + "HoverStyle": { + "Type": "GuiButton", + "Color": "#9E4C16ff", + "TextColor": "#ffffffff" + } + }, + { + "Name": "checkbox", + "Type": "GuiCheckBox", + "BackgroundRegion": "checkBox_beige_unchecked", + "CheckedStyle": { + "Type": "GuiCheckBox", + "BackgroundRegion": "checkBox_beige_checked" + } + }, + + { + "Name": "brown-panel", + "Type": "GuiPanel", + "BackgroundRegion": "panel_brown", + "Size": "400 300" + }, + { + "Name": "beige-inset-panel", + "Type": "GuiPanel", + "BackgroundRegion": "panelInset_beige", + "Size": "385 280" + }, + { + "Name": "label", + "Type": "GuiLabel", + "TextColor": "#444444" + }, + { + "Name": "monogame-title", + "Type": "GuiImage", + "BackgroundRegion": "monogame-title" + }, + { + "Name": "text-box", + "Type": "GuiTextBox", + "Padding": "8 0", + "BackgroundRegion": "grey_textBox", + "TextColor": "#444444" + }, + { + "Name": "progress-bar", + "Type": "GuiProgressBar", + "BackgroundRegion": "progress-bar-container", + "BarRegion": "progress-bar-blue", + "Size": "100 32" + } + ] +} \ No newline at end of file diff --git a/Source/Demos/Demo.Android/Assets/title-screen.json b/Source/Demos/Demo.Android/Assets/title-screen.json new file mode 100644 index 00000000..8d239538 --- /dev/null +++ b/Source/Demos/Demo.Android/Assets/title-screen.json @@ -0,0 +1,76 @@ +{ + "Skin": "adventure-gui-skin.json", + "Controls": [ + { + "Type": "GuiPanel", + "Name": "MainPanel", + "Style": "brown-panel", + "Position": "400 240", + "Size": "700 380", + "Controls": [ + { + "Type": "GuiPanel", + "Style": "beige-inset-panel", + "Position": "350 190", + "Size": "680 360" + }, + { + "Name": "CloseButton", + "Type": "GuiButton", + "Style": "close-button", + "Position": "690 10" + }, + { + "Type": "GuiImage", + "Style": "monogame-title", + "Position": "350 100" + }, + { + "Name": "PlayButton", + "Type": "GuiButton", + "Style": "white-button", + "Position": "350 190", + "Text": "Play" + }, + { + "Name": "QuitButton", + "Type": "GuiButton", + "Style": "white-button", + "Position": "350 240", + "Text": "Quit" + }, + { + "Name": "EmailLabel", + "Style": "label", + "Type": "GuiLabel", + "Position": "350 315", + "Text": "email" + }, + { + "Name": "EmailTextBox", + "Type": "GuiTextBox", + "Style": "text-box", + "Position": "350 345", + "Size": "300 42", + "Text": "Let's put some really long text in the textbox to test the clipping area" + }, + { + "Name": "CheckBox", + "Type": "GuiCheckBox", + "Style": "checkbox", + "Position": "350 285", + "Size": "250 35", + "Text": "sign me up to all the things", + "TextColor": "#444444" + }, + { + "Name": "ProgressBar", + "Type": "GuiProgressBar", + "Style": "progress-bar", + "Position": "100 300", + "Progress": 0.5 + } + ] + } + ] +} diff --git a/Source/Demos/Demo.Android/Content/Content.mgcb b/Source/Demos/Demo.Android/Content/Content.mgcb new file mode 100644 index 00000000..2561ef4d --- /dev/null +++ b/Source/Demos/Demo.Android/Content/Content.mgcb @@ -0,0 +1,50 @@ + +#----------------------------- Global Properties ----------------------------# + +/outputDir:bin +/intermediateDir:obj +/platform:Android +/config: +/profile:Reach +/compress:False + +#-------------------------------- References --------------------------------# + +/reference:..\..\..\MonoGame.Extended.Content.Pipeline\bin\MonoGame.Extended.Content.Pipeline.dll + +#---------------------------------- Content ---------------------------------# + +#begin adventure-gui.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:adventure-gui.png + +#begin adventure-gui-atlas.json +/importer:TexturePackerJsonImporter +/processor:TexturePackerProcessor +/build:adventure-gui-atlas.json + +#begin small-font.fnt +/importer:BitmapFontImporter +/processor:BitmapFontProcessor +/build:small-font.fnt + +#begin small-font_0.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:small-font_0.png + diff --git a/Source/Demos/Demo.Android/Content/adventure-gui-atlas.json b/Source/Demos/Demo.Android/Content/adventure-gui-atlas.json new file mode 100644 index 00000000..002a70cc --- /dev/null +++ b/Source/Demos/Demo.Android/Content/adventure-gui-atlas.json @@ -0,0 +1,174 @@ +{"frames": [ + +{ + "filename": "monogame-title.png", + "frame": {"x":2,"y":2,"w":504,"h":120}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":504,"h":120}, + "sourceSize": {"w":504,"h":120}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "panel_brown.png", + "frame": {"x":2,"y":124,"w":100,"h":100}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":100,"h":100}, + "sourceSize": {"w":100,"h":100}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "panelInset_beige.png", + "frame": {"x":104,"y":124,"w":93,"h":94}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":93,"h":94}, + "sourceSize": {"w":93,"h":94}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonLong_grey.png", + "frame": {"x":194,"y":226,"w":190,"h":49}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":190,"h":49}, + "sourceSize": {"w":190,"h":49}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonLong_grey_pressed.png", + "frame": {"x":2,"y":226,"w":190,"h":49}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":190,"h":49}, + "sourceSize": {"w":190,"h":49}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "grey_textBox.png", + "frame": {"x":246,"y":124,"w":191,"h":49}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":191,"h":49}, + "sourceSize": {"w":191,"h":49}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonSquare_blue.png", + "frame": {"x":439,"y":124,"w":45,"h":49}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":45,"h":49}, + "sourceSize": {"w":45,"h":49}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonSquare_blue_pressed.png", + "frame": {"x":199,"y":124,"w":45,"h":49}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":45,"h":49}, + "sourceSize": {"w":45,"h":49}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonRound_close.png", + "frame": {"x":460,"y":226,"w":35,"h":38}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":35,"h":38}, + "sourceSize": {"w":35,"h":38}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonRound_beige.png", + "frame": {"x":423,"y":226,"w":35,"h":38}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":35,"h":38}, + "sourceSize": {"w":35,"h":38}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonRound_beige_checked.png", + "frame": {"x":386,"y":226,"w":35,"h":38}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":35,"h":38}, + "sourceSize": {"w":35,"h":38}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "cursorSword_silver.png", + "frame": {"x":2,"y":277,"w":34,"h":37}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":34,"h":37}, + "sourceSize": {"w":34,"h":37}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "checkBox_beige_checked.png", + "frame": {"x":75,"y":277,"w":35,"h":35}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":35,"h":35}, + "sourceSize": {"w":35,"h":35}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "checkBox_beige_unchecked.png", + "frame": {"x":38,"y":277,"w":35,"h":35}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":35,"h":35}, + "sourceSize": {"w":35,"h":35}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "progress-bar-blue.png", + "frame": {"x":188,"y":277,"w":36,"h":18}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":36,"h":18}, + "sourceSize": {"w":36,"h":18}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "progress-bar-green.png", + "frame": {"x":112,"y":277,"w":36,"h":18}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":36,"h":18}, + "sourceSize": {"w":36,"h":18}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "progress-bar-red.png", + "frame": {"x":226,"y":277,"w":36,"h":18}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":36,"h":18}, + "sourceSize": {"w":36,"h":18}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "progress-bar-container.png", + "frame": {"x":150,"y":277,"w":36,"h":18}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":36,"h":18}, + "sourceSize": {"w":36,"h":18}, + "pivot": {"x":0.5,"y":0.5} +}], +"meta": { + "app": "http://www.codeandweb.com/texturepacker", + "version": "1.0", + "image": "adventure-gui.png", + "format": "RGBA8888", + "size": {"w":512,"h":512}, + "scale": "1", + "smartupdate": "$TexturePacker:SmartUpdate:916ebf93558b06c639197c77d59b8bd1:47e52a3a5ea7d18877b92a0b5013fb0e:664eb9b3a42185355129a17c82b53558$" +} +} diff --git a/Source/Demos/Demo.Android/Content/adventure-gui.png b/Source/Demos/Demo.Android/Content/adventure-gui.png new file mode 100644 index 0000000000000000000000000000000000000000..29291a7d0c098ce23d96b3322d2600a9f5b91f0d GIT binary patch literal 41892 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®+`ia-@X>?%-X|_$dFJl7V33Udbv6Ew$YJNLn9$opM zkSLToZA#$?Ck{KvJuP|s#lEhxrUoBxLI&06L&i}N1rM)O^gMSj9d^iU3?dwHvrC$P zAF`88y85BZ5h*;gHQS24MDlA;_dncO{CF&Kw_@E~Q?q>R1xs1w1lKRhl>^Q{aoFFL zx_3pMbY8qj8)h!B+j=m~Ae0yMF@#vt`Ly0@m269th>Ba~(`>sIqit2&Z)ZCG^6MbD z$DnLxT*NYH70{W~EO~rf z=b9HDYHEJ1PIgYMgVtY@@kdPs!AuSUT(nU}&3GV0yaEcd8pa)}v`fv_2%jetP6o$@ z92C3j*e~wnw=-UdbVjrE)T5~?gc2m%evN5H^C^F8WbU8D%jDb>HIIpy&kg*%y|adE z&&2M*e!h<*Pt^Hb=~BtpF`6d<#a%q$z@WVw%IrE?8>ZdQNxK1cWA?nfJPd2p&r~7Z zC6|dBY4qj8=}2+^pCq4+-QB|g;!t9pqJ5gV;`RU*rzWQNZNS0*FnM->c+22Q-thj; zoU1))x7M`O>4>cC0c|ky8r!+tjUB+~HKFz=ZE?1>DcoJ`u?$!G;NwmUgZQnss}&zl zoC*cI^^juXK}x3Mq^E8M_7;JWiB(>kK*2=ZZ6dUuM`j`F7e~EAk~<`a;&h$` xTjloq^I7yB)#z%TNPyq||MP#N2bu?$48GP6TW2pKBTrkTs|D9Ay=n34e*n^$?`Z%4 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Android/Content/small-font.fnt b/Source/Demos/Demo.Android/Content/small-font.fnt new file mode 100644 index 00000000..5dac6f09 --- /dev/null +++ b/Source/Demos/Demo.Android/Content/small-font.fnt @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Demos/Demo.Android/Content/small-font_0.png b/Source/Demos/Demo.Android/Content/small-font_0.png new file mode 100644 index 0000000000000000000000000000000000000000..088d4f64c208a183002291e1dcbb952124776895 GIT binary patch literal 5636 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Android/Demo.Android.csproj b/Source/Demos/Demo.Android/Demo.Android.csproj new file mode 100644 index 00000000..1a1ff18b --- /dev/null +++ b/Source/Demos/Demo.Android/Demo.Android.csproj @@ -0,0 +1,123 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {75787324-20FC-4AA7-8E4E-00AE508F4069} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + Demo.Android + Demo.Android + 512 + true + Resources\Resource.Designer.cs + Off + armeabi%3barmeabi-v7a%3bx86 + + + v7.1 + Properties\AndroidManifest.xml + + + ..\..\..\ + true + f7f092e7 + Android + True + + + true + full + false + bin\Android\Debug\ + DEBUG;TRACE;ANDROID + prompt + 4 + True + None + + + pdbonly + true + ..\..\bin\Android\Release\ + TRACE;ANDROID + prompt + 4 + False + SdkOnly + + + + + False + C:\Program Files (x86)\MonoGame\v3.0\Assemblies\Android\MonoGame.Framework.dll + + + + packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + + + + {8e425575-378a-4f83-88c9-f8bebad227c9} + MonoGame.Extended.Gui + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Android/Demo.Android.sln b/Source/Demos/Demo.Android/Demo.Android.sln new file mode 100644 index 00000000..6d0ab363 --- /dev/null +++ b/Source/Demos/Demo.Android/Demo.Android.sln @@ -0,0 +1,36 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26206.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Android", "Demo.Android.csproj", "{75787324-20FC-4AA7-8E4E-00AE508F4069}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended", "..\..\MonoGame.Extended\MonoGame.Extended.csproj", "{41724C52-3D50-45BB-81EB-3C8A247EAFD1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Gui", "..\..\MonoGame.Extended.Gui\MonoGame.Extended.Gui.csproj", "{8E425575-378A-4F83-88C9-F8BEBAD227C9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {75787324-20FC-4AA7-8E4E-00AE508F4069}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75787324-20FC-4AA7-8E4E-00AE508F4069}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75787324-20FC-4AA7-8E4E-00AE508F4069}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {75787324-20FC-4AA7-8E4E-00AE508F4069}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75787324-20FC-4AA7-8E4E-00AE508F4069}.Release|Any CPU.Build.0 = Release|Any CPU + {75787324-20FC-4AA7-8E4E-00AE508F4069}.Release|Any CPU.Deploy.0 = Release|Any CPU + {41724C52-3D50-45BB-81EB-3C8A247EAFD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41724C52-3D50-45BB-81EB-3C8A247EAFD1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41724C52-3D50-45BB-81EB-3C8A247EAFD1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41724C52-3D50-45BB-81EB-3C8A247EAFD1}.Release|Any CPU.Build.0 = Release|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Demos/Demo.Android/GameMain.cs b/Source/Demos/Demo.Android/GameMain.cs new file mode 100644 index 00000000..c55cb392 --- /dev/null +++ b/Source/Demos/Demo.Android/GameMain.cs @@ -0,0 +1,102 @@ +using System; +using System.IO; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended; +using MonoGame.Extended.Gui; +using MonoGame.Extended.Gui.Controls; +using MonoGame.Extended.Gui.Serialization; +using MonoGame.Extended.ViewportAdapters; +using Newtonsoft.Json; + +namespace Demo.Android +{ + public class GameMain : Game + { + private readonly GraphicsDeviceManager _graphicsDeviceManager; + private Camera2D _camera; + private GuiSystem _guiSystem; + private GuiProgressBar _progressBar; + private float _progressDelta = 0.2f; + + public GameMain() + { + _graphicsDeviceManager = new GraphicsDeviceManager(this) + { + IsFullScreen = true, + SupportedOrientations = DisplayOrientation.LandscapeLeft | DisplayOrientation.LandscapeRight + }; + Content.RootDirectory = "Content"; + } + + protected override void LoadContent() + { + var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480); + _camera = new Camera2D(viewportAdapter); + + var titleScreen = LoadScreen(@"title-screen.json"); + var guiRenderer = new GuiSpriteBatchRenderer(GraphicsDevice, titleScreen.Skin.DefaultFont, _camera.GetViewMatrix); + _guiSystem = new GuiSystem(viewportAdapter, guiRenderer) { Screen = titleScreen }; + + var panel = titleScreen.FindControl("MainPanel"); + + var closeButton = titleScreen.FindControl("CloseButton"); + closeButton.Clicked += (sender, args) => { panel.IsVisible = false; }; + + var quitButton = titleScreen.FindControl("QuitButton"); + quitButton.Clicked += (sender, args) => Exit(); + + _progressBar = titleScreen.FindControl("ProgressBar"); + } + + private GuiScreen LoadScreen(string name) + { + var skinService = new GuiSkinService(); + var serializer = new GuiJsonSerializer(Content) + { + Converters = + { + new GuiSkinJsonConverter(Content, skinService), + new GuiControlJsonConverter(skinService) + } + }; + + using (var stream = TitleContainer.OpenStream(name)) + using (var streamReader = new StreamReader(stream)) + using (var jsonReader = new JsonTextReader(streamReader)) + { + var screen = serializer.Deserialize(jsonReader); + return screen; + } + } + + protected override void Update(GameTime gameTime) + { + var deltaTime = gameTime.GetElapsedSeconds(); + var keyboardState = Keyboard.GetState(); + + if (keyboardState.IsKeyDown(Keys.Escape)) + Exit(); + + _progressBar.Progress += deltaTime * _progressDelta; + + if (_progressBar.Progress >= 1.1f) + _progressDelta = -_progressDelta; + else if (_progressBar.Progress <= -0.1f) + _progressDelta = -_progressDelta; + + _guiSystem.Update(gameTime); + + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + GraphicsDevice.Clear(Color.CornflowerBlue); + + _guiSystem.Draw(gameTime); + + base.Draw(gameTime); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Android/Icon.ico b/Source/Demos/Demo.Android/Icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7d9dec18704053ee43cd7c956022ddbdb34d8de1 GIT binary patch literal 147541 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 RJoIeLznU7AhJ`o~_y6Yy51#-4 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Android/Properties/AndroidManifest.xml b/Source/Demos/Demo.Android/Properties/AndroidManifest.xml new file mode 100644 index 00000000..72f8fb6d --- /dev/null +++ b/Source/Demos/Demo.Android/Properties/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Android/Properties/AssemblyInfo.cs b/Source/Demos/Demo.Android/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..4333a5da --- /dev/null +++ b/Source/Demos/Demo.Android/Properties/AssemblyInfo.cs @@ -0,0 +1,43 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Resources; +#if ANDROID +using Android.App; +#endif + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Platformer2D")] +[assembly: AssemblyProduct("Platformer2D")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: NeutralResourcesLanguageAttribute("en-US")] +#if ANDROID +// Add some common permissions, these can be removed if not needed +[assembly: UsesPermission(Android.Manifest.Permission.Internet)] +[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] +#endif \ No newline at end of file diff --git a/Source/Demos/Demo.Android/Resources/AboutResources.txt b/Source/Demos/Demo.Android/Resources/AboutResources.txt new file mode 100644 index 00000000..b0fc999b --- /dev/null +++ b/Source/Demos/Demo.Android/Resources/AboutResources.txt @@ -0,0 +1,44 @@ +Images, layout descriptions, binary blobs and string dictionaries can be included +in your application as resource files. Various Android APIs are designed to +operate on the resource IDs instead of dealing with images, strings or binary blobs +directly. + +For example, a sample Android app that contains a user interface layout (Main.xml), +an internationalization string table (Strings.xml) and some icons (drawable/Icon.png) +would keep its resources in the "Resources" directory of the application: + +Resources/ + Drawable/ + Icon.png + + Layout/ + Main.axml + + Values/ + Strings.xml + +In order to get the build system to recognize Android resources, the build action should be set +to "AndroidResource". The native Android APIs do not operate directly with filenames, but +instead operate on resource IDs. When you compile an Android application that uses resources, +the build system will package the resources for distribution and generate a class called +"Resource" that contains the tokens for each one of the resources included. For example, +for the above Resources layout, this is what the Resource class would expose: + +public class Resource { + public class Drawable { + public const int Icon = 0x123; + } + + public class Layout { + public const int Main = 0x456; + } + + public class String { + public const int FirstString = 0xabc; + public const int SecondString = 0xbcd; + } +} + +You would then use Resource.Drawable.Icon to reference the Drawable/Icon.png file, or +Resource.Layout.Main to reference the Layout/Main.axml file, or Resource.String.FirstString +to reference the first string in the dictionary file Values/Strings.xml. \ No newline at end of file diff --git a/Source/Demos/Demo.Android/Resources/Drawable/Icon.png b/Source/Demos/Demo.Android/Resources/Drawable/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce70ca50b039ba85dc6e0021d0070f2fd5c5f7d3 GIT binary patch literal 5998 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Android/Resources/Drawable/Splash.png b/Source/Demos/Demo.Android/Resources/Drawable/Splash.png new file mode 100644 index 0000000000000000000000000000000000000000..030abcdceec2313cbbc0bb259385603ec876dad3 GIT binary patch literal 691831 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≫?=Pv|8|>m92)=uK0w3 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

vt4cgfD3wF1wbFLjZjjSkg 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 %|G_EtEf)wQC5QWQ*S{BX)lS6H{APHl6$UNrPb7 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 z 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 z%0A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

mLjyn;7Cdt3l^JceJ1T9u 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 +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::Android.Runtime.ResourceDesignerAttribute("Demo.Android.Resource", IsApplication=true)] + +namespace Demo.Android +{ + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] + public partial class Resource + { + + static Resource() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + public static void UpdateIdValues() + { + } + + public partial class Attribute + { + + static Attribute() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Attribute() + { + } + } + + public partial class Drawable + { + + // aapt resource value: 0x7f020000 + public const int Icon = 2130837504; + + // aapt resource value: 0x7f020001 + public const int Splash = 2130837505; + + static Drawable() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Drawable() + { + } + } + + public partial class String + { + + // aapt resource value: 0x7f030001 + public const int ApplicationName = 2130903041; + + // aapt resource value: 0x7f030000 + public const int Hello = 2130903040; + + static String() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private String() + { + } + } + + public partial class Style + { + + // aapt resource value: 0x7f040000 + public const int Theme_Splash = 2130968576; + + static Style() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Style() + { + } + } + } +} +#pragma warning restore 1591 diff --git a/Source/Demos/Demo.Android/Resources/Values/Strings.xml b/Source/Demos/Demo.Android/Resources/Values/Strings.xml new file mode 100644 index 00000000..a6b7feef --- /dev/null +++ b/Source/Demos/Demo.Android/Resources/Values/Strings.xml @@ -0,0 +1,5 @@ + + + Hello World, Click Me! + Platformer2D + diff --git a/Source/Demos/Demo.Android/Resources/Values/Styles.xml b/Source/Demos/Demo.Android/Resources/Values/Styles.xml new file mode 100644 index 00000000..51021340 --- /dev/null +++ b/Source/Demos/Demo.Android/Resources/Values/Styles.xml @@ -0,0 +1,7 @@ + + + + diff --git a/Source/Demos/Demo.Android/packages.config b/Source/Demos/Demo.Android/packages.config new file mode 100644 index 00000000..54889761 --- /dev/null +++ b/Source/Demos/Demo.Android/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Animations/Content/Content.mgcb b/Source/Demos/Demo.Animations/Content/Content.mgcb new file mode 100644 index 00000000..67baf7f1 --- /dev/null +++ b/Source/Demos/Demo.Animations/Content/Content.mgcb @@ -0,0 +1,28 @@ + +#----------------------------- Global Properties ----------------------------# + +/outputDir:bin/$(Platform) +/intermediateDir:obj/$(Platform) +/platform:Windows +/config: +/profile:Reach +/compress:False + +#-------------------------------- References --------------------------------# + +/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll + +#---------------------------------- Content ---------------------------------# + +#begin logo-square-128.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:logo-square-128.png + diff --git a/Source/Demos/Demo.Animations/Content/logo-square-128.png b/Source/Demos/Demo.Animations/Content/logo-square-128.png new file mode 100644 index 0000000000000000000000000000000000000000..1dbe3e85cf58f08270faf30af047db9917cca3c4 GIT binary patch literal 3513 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Animations/Demo.Animations.csproj b/Source/Demos/Demo.Animations/Demo.Animations.csproj new file mode 100644 index 00000000..ac2acd48 --- /dev/null +++ b/Source/Demos/Demo.Animations/Demo.Animations.csproj @@ -0,0 +1,134 @@ + + + + + Debug + AnyCPU + {1C21F12C-FA6A-4759-B66F-EA2F67003BF4} + WinExe + Properties + Demo.Animations + Demo.Animations + DesktopGL + v4.5 + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + false + 6 + + + true + bin\Release + prompt + 4 + false + false + + + Icon.ico + + + + + + + + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll + True + + + + + + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + + + + + + + + + + PreserveNewest + + + + + {587ce536-216f-41a1-b223-ae502c125b09} + MonoGame.Extended.Animations + + + {1cf61f4f-a2ee-49bf-95d0-379e870de90e} + MonoGame.Extended.Tweening + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Animations/Game1.cs b/Source/Demos/Demo.Animations/Game1.cs new file mode 100644 index 00000000..e7a0b47c --- /dev/null +++ b/Source/Demos/Demo.Animations/Game1.cs @@ -0,0 +1,98 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended; +using MonoGame.Extended.Animations; +using MonoGame.Extended.Tweening; +using MonoGame.Extended.Sprites; +using MonoGame.Extended.ViewportAdapters; + +namespace Demo.Animations +{ + public class Game1 : Game + { + // ReSharper disable once NotAccessedField.Local + private readonly GraphicsDeviceManager _graphicsDeviceManager; + private SpriteBatch _spriteBatch; + private Sprite _sprite; + private Camera2D _camera; + + public Game1() + { + _graphicsDeviceManager = new GraphicsDeviceManager(this); + Content.RootDirectory = "Content"; + IsMouseVisible = true; + Window.AllowUserResizing = true; + } + + protected override void Initialize() + { + var animationComponent = new AnimationComponent(this); + var tweenComponent = new TweeningComponent(this, animationComponent); + Components.Add(animationComponent); + Components.Add(tweenComponent); + + base.Initialize(); + } + + protected override void LoadContent() + { + _spriteBatch = new SpriteBatch(GraphicsDevice); + + var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480); + _camera = new Camera2D(viewportAdapter); + + var logoTexture = Content.Load("logo-square-128"); + + _sprite = new Sprite(logoTexture) + { + Position = viewportAdapter.Center.ToVector2(), + Scale = Vector2.One * 0.5f, + Color = new Color(Color.White, 0.0f) + }; + + CreateTweenThing(); + + } + + private void CreateTweenThing() + { + _sprite.CreateTweenChain(CreateTweenThing) + .Rotate(MathHelper.Pi, 1.0f, EasingFunctions.BounceOut) + .Scale(new Vector2(1.1f), 1.0f, EasingFunctions.BounceOut); + } + + protected override void UnloadContent() + { + } + + protected override void Update(GameTime gameTime) + { + var keyboardState = Keyboard.GetState(); + var mouseState = Mouse.GetState(); + + if (mouseState.LeftButton == ButtonState.Pressed) + { + _sprite + .CreateTweenGroup() + .MoveTo(new Vector2(mouseState.X, mouseState.Y), 1.0f, EasingFunctions.BounceOut); + } + + if (keyboardState.IsKeyDown(Keys.Escape)) + Exit(); + + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + GraphicsDevice.Clear(Color.Black); + + _spriteBatch.Begin(blendState: BlendState.AlphaBlend, transformMatrix: _camera.GetViewMatrix()); + _spriteBatch.Draw(_sprite); + _spriteBatch.End(); + + base.Draw(gameTime); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Animations/Icon.bmp b/Source/Demos/Demo.Animations/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 RJoIeLznU7AhJ`o~_y6Yy51#-4 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Animations/MonoGame.Framework.dll.config b/Source/Demos/Demo.Animations/MonoGame.Framework.dll.config new file mode 100644 index 00000000..09710ae4 --- /dev/null +++ b/Source/Demos/Demo.Animations/MonoGame.Framework.dll.config @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Source/Demos/Demo.Animations/OpenTK.dll.config b/Source/Demos/Demo.Animations/OpenTK.dll.config new file mode 100644 index 00000000..9342d688 --- /dev/null +++ b/Source/Demos/Demo.Animations/OpenTK.dll.config @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Animations/Program.cs b/Source/Demos/Demo.Animations/Program.cs new file mode 100644 index 00000000..6075d3db --- /dev/null +++ b/Source/Demos/Demo.Animations/Program.cs @@ -0,0 +1,16 @@ +using System; + +namespace Demo.Animations +{ + internal static class Program + { + [STAThread] + private static void Main(string[] args) + { + using (var game = new Game1()) + { + game.Run(); + } + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Animations/Properties/AssemblyInfo.cs b/Source/Demos/Demo.Animations/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..99fa049d --- /dev/null +++ b/Source/Demos/Demo.Animations/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. + +[assembly: AssemblyTitle("Demo.Animations")] +[assembly: AssemblyProduct("Demo.Animations")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. + +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM + +[assembly: Guid("9b7203c6-a9a6-40e9-a798-893df7f10bf1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] + +[assembly: AssemblyVersion("3.4.0.456")] +[assembly: AssemblyFileVersion("3.4.0.456")] \ No newline at end of file diff --git a/Source/Demos/Demo.Animations/app.config b/Source/Demos/Demo.Animations/app.config new file mode 100644 index 00000000..5c73fc53 --- /dev/null +++ b/Source/Demos/Demo.Animations/app.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Animations/app.manifest b/Source/Demos/Demo.Animations/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.Animations/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.Animations/packages.config b/Source/Demos/Demo.Animations/packages.config new file mode 100644 index 00000000..9b38dcf7 --- /dev/null +++ b/Source/Demos/Demo.Animations/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Batching/Content/Content.mgcb b/Source/Demos/Demo.Batching/Content/Content.mgcb new file mode 100644 index 00000000..8ac0f99e --- /dev/null +++ b/Source/Demos/Demo.Batching/Content/Content.mgcb @@ -0,0 +1,56 @@ + +#----------------------------- Global Properties ----------------------------# + +/outputDir:bin/$(Platform) +/intermediateDir:obj/$(Platform) +/platform:DesktopGL +/config: +/profile:Reach +/compress:False + +#-------------------------------- References --------------------------------# + +/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll + +#---------------------------------- Content ---------------------------------# + +#begin logo-square-128.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:logo-square-128.png + +#begin logo-square-128-copy.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:logo-square-128-copy.png + +#begin montserrat-32.fnt +/importer:BitmapFontImporter +/processor:BitmapFontProcessor +/build:montserrat-32.fnt + +#begin montserrat-32_0.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:montserrat-32_0.png \ No newline at end of file diff --git a/Source/Demos/Demo.Batching/Content/Thumbs.db b/Source/Demos/Demo.Batching/Content/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c77b2d7527ce8b0e9d1ef23418fbac804f8c89f7 GIT binary patch literal 8704 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 LFlFES|IPmZ#rr<; literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Batching/Content/logo-square-128-copy.png b/Source/Demos/Demo.Batching/Content/logo-square-128-copy.png new file mode 100644 index 0000000000000000000000000000000000000000..ab47b29ae37a5f7f9c70a4accb7f8d48c8ac78c9 GIT binary patch literal 2987 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Batching/Content/logo-square-128.png b/Source/Demos/Demo.Batching/Content/logo-square-128.png new file mode 100644 index 0000000000000000000000000000000000000000..ab47b29ae37a5f7f9c70a4accb7f8d48c8ac78c9 GIT binary patch literal 2987 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Batching/Content/montserrat-32.fnt b/Source/Demos/Demo.Batching/Content/montserrat-32.fnt new file mode 100644 index 00000000..51af461a --- /dev/null +++ b/Source/Demos/Demo.Batching/Content/montserrat-32.fnt @@ -0,0 +1,341 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Demos/Demo.Batching/Content/montserrat-32_0.png b/Source/Demos/Demo.Batching/Content/montserrat-32_0.png new file mode 100644 index 0000000000000000000000000000000000000000..7ef6ac07dd53d8ae6b8390e0d7b2f411dcecbb4c GIT binary patch literal 10313 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Batching/Demo.Batching.csproj b/Source/Demos/Demo.Batching/Demo.Batching.csproj new file mode 100644 index 00000000..69ba488f --- /dev/null +++ b/Source/Demos/Demo.Batching/Demo.Batching.csproj @@ -0,0 +1,131 @@ + + + + + Debug + x86 + {5A251894-0462-47B6-9A63-BE26AA8CABDD} + WinExe + Properties + Demo.Batching + Demo.Batching + DesktopGL + v4.5 + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + false + 6 + + + true + bin\Release + prompt + 4 + false + false + + + Icon.ico + + + Demo.Batching.Program + + + + + + + + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll + True + + + + + + + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + + + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + + + + + + + + {9b3ab8a1-78aa-471a-afd0-b10b932115bc} + MonoGame.Extended.Graphics + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Batching/Game1.cs b/Source/Demos/Demo.Batching/Game1.cs new file mode 100644 index 00000000..51026027 --- /dev/null +++ b/Source/Demos/Demo.Batching/Game1.cs @@ -0,0 +1,175 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended; +using MonoGame.Extended.BitmapFonts; +using MonoGame.Extended.Graphics; +using MonoGame.Extended.Graphics.Effects; + +namespace Demo.Batching +{ + public struct SpriteInfo + { + public Vector2 Position; + public float Rotation; + public Color Color; + public Texture2D Texture; + public Matrix2D TransformMatrix; + } + + public class Game1 : Game + { + // ReSharper disable once NotAccessedField.Local + private readonly GraphicsDeviceManager _graphicsDeviceManager; + + private Batcher2D _batcher; + private SpriteBatch _spriteBatch; + private BitmapFont _bitmapFont; + private Texture2D _spriteTexture1; + private Texture2D _spriteTexture2; + private Vector2 _spriteOrigin; + private Vector2 _spriteScale; + private DefaultEffect _effect; + + private readonly Random _random = new Random(); + private readonly FramesPerSecondCounter _fpsCounter = new FramesPerSecondCounter(); + private readonly SpriteInfo[] _sprites = new SpriteInfo[2048]; + private Matrix _worldMatrix; + private Matrix _viewMatrix; + private Matrix _projectionMatrix; + + public Game1() + { + Content.RootDirectory = "Content"; + IsMouseVisible = true; + Window.AllowUserResizing = false; + // disable fixed time step so max frames can be measured otherwise the update & draw frames would be capped to the default 60 fps timestep + IsFixedTimeStep = false; + + _graphicsDeviceManager = new GraphicsDeviceManager(this) + { + // also disable v-sync so max frames can be measured otherwise draw frames would be capped to the screen's refresh rate + SynchronizeWithVerticalRetrace = false, + PreferredBackBufferWidth = 800, + PreferredBackBufferHeight = 600 + }; + } + + protected override void LoadContent() + { + var graphicsDevice = GraphicsDevice; + + _effect = new DefaultEffect(graphicsDevice) + { + TextureEnabled = true, + VertexColorEnabled = true + }; + _batcher = new Batcher2D(graphicsDevice); + _spriteBatch = new SpriteBatch(graphicsDevice); + _bitmapFont = Content.Load("montserrat-32"); + + // load the texture for the sprites + _spriteTexture1 = Content.Load("logo-square-128"); + _spriteTexture2 = Content.Load("logo-square-128-copy"); + _spriteOrigin = new Vector2(_spriteTexture1.Width * 0.5f, _spriteTexture1.Height * 0.5f); + _spriteScale = new Vector2(0.5f); + + var viewport = GraphicsDevice.Viewport; + + // ReSharper disable once ForCanBeConvertedToForeach + for (var index = 0; index < _sprites.Length; index++) + { + var sprite = _sprites[index]; + sprite.Position = new Vector2(_random.Next(viewport.X, viewport.Width), + _random.Next(viewport.Y, viewport.Height)); + sprite.Rotation = MathHelper.ToRadians(_random.Next(0, 360)); + sprite.Texture = index % 2 == 0 ? _spriteTexture1 : _spriteTexture2; + _sprites[index] = sprite; + } + } + + protected override void Update(GameTime gameTime) + { + var keyboard = Keyboard.GetState(); + var gamePadState = GamePad.GetState(PlayerIndex.One); + + if (gamePadState.Buttons.Back == ButtonState.Pressed || keyboard.IsKeyDown(Keys.Escape)) + Exit(); + + // ReSharper disable once ForCanBeConvertedToForeach + for (var index = 0; index < _sprites.Length; index++) + { + var sprite = _sprites[index]; + + if (index % 2 == 0) + sprite.Rotation = (sprite.Rotation + MathHelper.ToRadians(0.5f)) % MathHelper.TwoPi; + else + sprite.Rotation = (sprite.Rotation - MathHelper.ToRadians(0.5f) + MathHelper.TwoPi) % MathHelper.TwoPi; + + sprite.Color = ColorHelper.FromHsl(sprite.Rotation / MathHelper.TwoPi, 0.5f, 0.3f); + + sprite.TransformMatrix = Matrix2D.CreateFrom(sprite.Position, sprite.Rotation, _spriteScale, _spriteOrigin); + + _sprites[index] = sprite; + } + + _fpsCounter.Update(gameTime); + + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + Window.Title = _fpsCounter.FramesPerSecond.ToString(); + + var graphicsDevice = GraphicsDevice; + + graphicsDevice.Clear(Color.CornflowerBlue); + + // update the matrices + _worldMatrix = Matrix.Identity; + _viewMatrix = _effect.View = Matrix.Identity; + _projectionMatrix = _effect.Projection = Matrix.CreateOrthographicOffCenter(0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, 0, 0, -1); + + // comment and uncomment either of the two below lines to compare + + DrawSpritesWithBatcher2D(); + //DrawSpritesWithSpriteBatch(); + + base.Draw(gameTime); + + _fpsCounter.Draw(gameTime); + } + + private void DrawSpritesWithBatcher2D() + { + _batcher.Begin(_viewMatrix, _projectionMatrix, effect: _effect); + + // ReSharper disable once ForCanBeConvertedToForeach + for (var index = 0; index < _sprites.Length; index++) + { + var sprite = _sprites[index]; + _batcher.DrawTexture(sprite.Texture, ref sprite.TransformMatrix, sprite.Color); + } + + _batcher.End(); + } + + private void DrawSpritesWithSpriteBatch() + { + _effect.Projection = _projectionMatrix; + _effect.View = _viewMatrix; + _spriteBatch.Begin(SpriteSortMode.Texture, effect: _effect); + + // ReSharper disable once ForCanBeConvertedToForeach + for (var index = 0; index < _sprites.Length; index++) + { + var sprite = _sprites[index]; + _spriteBatch.Draw(sprite.Texture, sprite.Position, null, sprite.Color, sprite.Rotation, _spriteOrigin, _spriteScale, SpriteEffects.None, 0); + } + + _spriteBatch.End(); + } + } +} diff --git a/Source/Demos/Demo.Batching/Icon.bmp b/Source/Demos/Demo.Batching/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 RJoIeLznU7AhJ`o~_y6Yy51#-4 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Batching/MonoGame.Framework.dll.config b/Source/Demos/Demo.Batching/MonoGame.Framework.dll.config new file mode 100644 index 00000000..09710ae4 --- /dev/null +++ b/Source/Demos/Demo.Batching/MonoGame.Framework.dll.config @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Source/Demos/Demo.Batching/Program.cs b/Source/Demos/Demo.Batching/Program.cs new file mode 100644 index 00000000..102753b5 --- /dev/null +++ b/Source/Demos/Demo.Batching/Program.cs @@ -0,0 +1,16 @@ +using System; + +namespace Demo.Batching +{ + internal static class Program + { + [STAThread] + private static void Main(string[] args) + { + using (var game = new Game1()) + { + game.Run(); + } + } + } +} diff --git a/Source/Demos/Demo.Batching/Properties/AssemblyInfo.cs b/Source/Demos/Demo.Batching/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..de2f2070 --- /dev/null +++ b/Source/Demos/Demo.Batching/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Demo.Batching")] +[assembly: AssemblyProduct("Demo.Batching")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c9256901-9794-4cf3-baf6-8ef76a50b3a3")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Demos/Demo.Batching/SpriteMaterial.cs b/Source/Demos/Demo.Batching/SpriteMaterial.cs new file mode 100644 index 00000000..74e4017d --- /dev/null +++ b/Source/Demos/Demo.Batching/SpriteMaterial.cs @@ -0,0 +1,21 @@ +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Graphics; + +namespace Demo.PrimitiveBatch +{ + public class SpriteMaterial : EffectMaterial + { + public Texture2D Texture { get; } + + public SpriteMaterial(SpriteEffect effect, Texture2D texture) + : base(effect) + { + Texture = texture; + } + + public override void Apply(out Effect effect) + { + Effect.Texture = Texture; + } + } +} diff --git a/Source/Demos/Demo.Batching/app.config b/Source/Demos/Demo.Batching/app.config new file mode 100644 index 00000000..5c73fc53 --- /dev/null +++ b/Source/Demos/Demo.Batching/app.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Batching/app.manifest b/Source/Demos/Demo.Batching/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.Batching/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.Batching/packages.config b/Source/Demos/Demo.Batching/packages.config new file mode 100644 index 00000000..9b38dcf7 --- /dev/null +++ b/Source/Demos/Demo.Batching/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.BitmapFonts/Content/Content.mgcb b/Source/Demos/Demo.BitmapFonts/Content/Content.mgcb index 4b163a4d..5cae4195 100644 --- a/Source/Demos/Demo.BitmapFonts/Content/Content.mgcb +++ b/Source/Demos/Demo.BitmapFonts/Content/Content.mgcb @@ -55,3 +55,20 @@ /processorParam:TextureFormat=Color /build:vignette.png +#begin impact-32.fnt +/importer:BitmapFontImporter +/processor:BitmapFontProcessor +/build:impact-32.fnt + +#begin impact-32_0.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:impact-32_0.png + diff --git a/Source/Demos/Demo.BitmapFonts/Content/impact-32.fnt b/Source/Demos/Demo.BitmapFonts/Content/impact-32.fnt new file mode 100644 index 00000000..f60898ea --- /dev/null +++ b/Source/Demos/Demo.BitmapFonts/Content/impact-32.fnt @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Demos/Demo.BitmapFonts/Content/impact-32_0.png b/Source/Demos/Demo.BitmapFonts/Content/impact-32_0.png new file mode 100644 index 0000000000000000000000000000000000000000..e24485a567f41b588eb3bb5b3c8bfed5938a7902 GIT binary patch literal 14250 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.BitmapFonts/Demo.BitmapFonts.csproj b/Source/Demos/Demo.BitmapFonts/Demo.BitmapFonts.csproj index 5563399c..be709bde 100644 --- a/Source/Demos/Demo.BitmapFonts/Demo.BitmapFonts.csproj +++ b/Source/Demos/Demo.BitmapFonts/Demo.BitmapFonts.csproj @@ -22,6 +22,7 @@ 4 false false + 6 true @@ -32,38 +33,75 @@ false - Icon.ico + + - + - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\MonoGame.Framework.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\NVorbis.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\OpenTK.dll + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll True - + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + + @@ -71,13 +109,15 @@ - - PreserveNewest + + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC} + MonoGame.Extended.Graphics + {41724c52-3d50-45bb-81eb-3c8a247eafd1} MonoGame.Extended diff --git a/Source/Demos/Demo.BitmapFonts/Game1.cs b/Source/Demos/Demo.BitmapFonts/Game1.cs deleted file mode 100644 index 627594d5..00000000 --- a/Source/Demos/Demo.BitmapFonts/Game1.cs +++ /dev/null @@ -1,76 +0,0 @@ -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Graphics; -using Microsoft.Xna.Framework.Input; -using MonoGame.Extended; -using MonoGame.Extended.BitmapFonts; -using MonoGame.Extended.ViewportAdapters; - -namespace Demo.BitmapFonts -{ - public class Game1 : Game - { - private Texture2D _backgroundTexture; - private BitmapFont _bitmapFont; - private Camera2D _camera; - // ReSharper disable once NotAccessedField.Local - private GraphicsDeviceManager _graphicsDeviceManager; - private Vector2 _labelPosition = Vector2.Zero; - private string _labelText = ""; - private SpriteBatch _spriteBatch; - private ViewportAdapter _viewportAdapter; - - public Game1() - { - _graphicsDeviceManager = new GraphicsDeviceManager(this); - Content.RootDirectory = "Content"; - IsMouseVisible = true; - Window.AllowUserResizing = true; - //Window.Position = Point.Zero; - } - - protected override void LoadContent() - { - _viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480); - _camera = new Camera2D(_viewportAdapter); - _backgroundTexture = Content.Load("vignette"); - _bitmapFont = Content.Load("montserrat-32"); - - _spriteBatch = new SpriteBatch(GraphicsDevice); - } - - protected override void UnloadContent() - { - } - - protected override void Update(GameTime gameTime) - { - var keyboardState = Keyboard.GetState(); - var mouseState = Mouse.GetState(); - - //if (keyboardState.IsKeyDown(Keys.Escape)) - //{ - // Exit(); - //} - - _labelText = $"{mouseState.X}, {mouseState.Y}"; - var stringRectangle = _bitmapFont.GetStringRectangle(_labelText, Vector2.Zero); - _labelPosition = new Vector2(400 - stringRectangle.Width / 2, 440); - - base.Update(gameTime); - } - - protected override void Draw(GameTime gameTime) - { - GraphicsDevice.Clear(Color.Black); - - _spriteBatch.Begin(transformMatrix: _camera.GetViewMatrix()); - _spriteBatch.Draw(_backgroundTexture, _viewportAdapter.BoundingRectangle, Color.White); - _spriteBatch.DrawString(_bitmapFont, "MonoGame.Extended BitmapFont Sample", new Vector2(50, 10), Color.White); - _spriteBatch.DrawString(_bitmapFont, "Contrary to popular belief, Lorem Ipsum is not simply random text.\n\n" + "It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard " + "McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin " + "words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, " + "discovered the undoubtable source.", new Vector2(50, 50), new Color(Color.Black, 0.5f), 750); - _spriteBatch.DrawString(_bitmapFont, _labelText, _labelPosition, Color.Black); - _spriteBatch.End(); - - base.Draw(gameTime); - } - } -} \ No newline at end of file diff --git a/Source/Demos/Demo.BitmapFonts/Game2.cs b/Source/Demos/Demo.BitmapFonts/Game2.cs new file mode 100644 index 00000000..a5a8fd71 --- /dev/null +++ b/Source/Demos/Demo.BitmapFonts/Game2.cs @@ -0,0 +1,131 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended; +using MonoGame.Extended.BitmapFonts; +using MonoGame.Extended.ViewportAdapters; + +namespace Demo.BitmapFonts +{ + public class Game2 : Game + { + // ReSharper disable once NotAccessedField.Local + private GraphicsDeviceManager _graphicsDeviceManager; + private BoxingViewportAdapter _viewportAdapter; + private Texture2D _backgroundTexture; + private BitmapFont _bitmapFontImpact; + + private SpriteBatch _spriteBatch; + private BitmapFont _bitmapFontMontserrat; + private Rectangle _clippingRectangle = new Rectangle(100, 100, 300, 300); + private MouseState _previousMouseState; + + public Game2() + { + _graphicsDeviceManager = new GraphicsDeviceManager(this); + Content.RootDirectory = "Content"; + IsMouseVisible = true; + Window.AllowUserResizing = true; + //Window.Position = Point.Zero; + } + + protected override void LoadContent() + { + _viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480); + _backgroundTexture = Content.Load("vignette"); + _bitmapFontImpact = Content.Load("impact-32"); + _bitmapFontMontserrat = Content.Load("montserrat-32"); + + _spriteBatch = new SpriteBatch(GraphicsDevice); + } + + protected override void UnloadContent() + { + } + + protected override void Update(GameTime gameTime) + { + var keyboardState = Keyboard.GetState(); + var mouseState = Mouse.GetState(); + + if (keyboardState.IsKeyDown(Keys.Escape)) + Exit(); + + var dx = mouseState.X - _previousMouseState.X; + var dy = mouseState.Y - _previousMouseState.Y; + + if (mouseState.LeftButton == ButtonState.Pressed) + { + _clippingRectangle.X += dx; + _clippingRectangle.Y += dy; + } + + if (mouseState.RightButton == ButtonState.Pressed) + { + _clippingRectangle.Width += dx; + _clippingRectangle.Height += dy; + } + + _previousMouseState = mouseState; + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + GraphicsDevice.Clear(Color.Black); + + _spriteBatch.Begin( + samplerState: SamplerState.LinearClamp, + blendState: BlendState.AlphaBlend, + transformMatrix: _viewportAdapter.GetScaleMatrix()); + _spriteBatch.Draw(_backgroundTexture, _viewportAdapter.BoundingRectangle, Color.DarkBlue); + + const string helloWorld = "The quick brown fox jumps over the lazy dog\nThe lazy dog jumps back over the quick brown fox"; + + var position = new Point2(400, 140); + var offset = new Vector2(0, 50); + var scale = Vector2.One; + var color = Color.White; + var rotation = 0;//MathHelper.Pi/64f; + + // bitmap font + var bitmapFontSize = _bitmapFontImpact.MeasureString(helloWorld); + var bitmapFontOrigin = (Point2)(bitmapFontSize / 2f); + + _spriteBatch.DrawString( + bitmapFont: _bitmapFontImpact, + text: helloWorld, + position: position + offset, + color: color, + rotation: rotation, + origin: bitmapFontOrigin, + scale: scale, + effect: SpriteEffects.None, + layerDepth: 0); + + _spriteBatch.DrawRectangle(position - bitmapFontOrigin + offset, bitmapFontSize, Color.Red); + + var bitmapFontMontserratSize = _bitmapFontMontserrat.MeasureString(helloWorld); + var bitmapFontMontserratOrigin = bitmapFontMontserratSize / 2f; + + _spriteBatch.DrawString( + bitmapFont: _bitmapFontMontserrat, + text: helloWorld, + position: position + offset * 3, + color: color, + rotation: rotation, + origin: bitmapFontMontserratOrigin, + scale: scale, + effect: SpriteEffects.None, + layerDepth: 0, + clippingRectangle: _clippingRectangle); + + _spriteBatch.DrawRectangle(_clippingRectangle, Color.White); + _spriteBatch.DrawRectangle(position - bitmapFontMontserratOrigin + offset * 3, bitmapFontMontserratSize, Color.Green); + + _spriteBatch.End(); + + base.Draw(gameTime); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.BitmapFonts/Icon.bmp b/Source/Demos/Demo.BitmapFonts/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 + + + + + + + + diff --git a/Source/Demos/Demo.BitmapFonts/Program.cs b/Source/Demos/Demo.BitmapFonts/Program.cs index 063c76e9..18adfefd 100644 --- a/Source/Demos/Demo.BitmapFonts/Program.cs +++ b/Source/Demos/Demo.BitmapFonts/Program.cs @@ -2,12 +2,12 @@ namespace Demo.BitmapFonts { - internal static class Program + public static class Program { [STAThread] - private static void Main(string[] args) + private static void Main() { - using (var game = new Game1()) + using (var game = new Game2()) { game.Run(); } diff --git a/Source/Demos/Demo.BitmapFonts/app.config b/Source/Demos/Demo.BitmapFonts/app.config index 51278a45..5c73fc53 100644 --- a/Source/Demos/Demo.BitmapFonts/app.config +++ b/Source/Demos/Demo.BitmapFonts/app.config @@ -1,3 +1,7 @@ - + + - + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.BitmapFonts/app.manifest b/Source/Demos/Demo.BitmapFonts/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.BitmapFonts/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.BitmapFonts/packages.config b/Source/Demos/Demo.BitmapFonts/packages.config index a5caee24..9b38dcf7 100644 --- a/Source/Demos/Demo.BitmapFonts/packages.config +++ b/Source/Demos/Demo.BitmapFonts/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Source/Demos/Demo.Camera/Demo.Camera.csproj b/Source/Demos/Demo.Camera/Demo.Camera.csproj index f0647517..6409c122 100644 --- a/Source/Demos/Demo.Camera/Demo.Camera.csproj +++ b/Source/Demos/Demo.Camera/Demo.Camera.csproj @@ -23,6 +23,7 @@ 4 false false + 6 true @@ -41,26 +42,60 @@ - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\MonoGame.Framework.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\NVorbis.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\OpenTK.dll + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll True - + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + @@ -71,6 +106,7 @@ + diff --git a/Source/Demos/Demo.Camera/Game1.cs b/Source/Demos/Demo.Camera/Game1.cs index 5a7f39c8..16aeeb5f 100644 --- a/Source/Demos/Demo.Camera/Game1.cs +++ b/Source/Demos/Demo.Camera/Game1.cs @@ -158,7 +158,7 @@ namespace Demo.Camera } // not all sprite batches need to be affected by the camera - var rectangle = _camera.GetBoundingRectangle(); + var rectangle = _camera.BoundingRectangle; var stringBuilder = new StringBuilder(); stringBuilder.AppendLine($"WASD: Move [{_camera.Position.X:0}, {_camera.Position.Y:0}]"); stringBuilder.AppendLine($"EQ: Rotate [{MathHelper.ToDegrees(_camera.Rotation):0.00}]"); diff --git a/Source/Demos/Demo.Camera/Icon.bmp b/Source/Demos/Demo.Camera/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 + + + + + + + + diff --git a/Source/Demos/Demo.Camera/app.manifest b/Source/Demos/Demo.Camera/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.Camera/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.Camera/packages.config b/Source/Demos/Demo.Camera/packages.config index a5caee24..9b38dcf7 100644 --- a/Source/Demos/Demo.Camera/packages.config +++ b/Source/Demos/Demo.Camera/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Source/Demos/Demo.EntityComponentSystem/Content/Content.mgcb b/Source/Demos/Demo.EntityComponentSystem/Content/Content.mgcb new file mode 100644 index 00000000..12686f98 --- /dev/null +++ b/Source/Demos/Demo.EntityComponentSystem/Content/Content.mgcb @@ -0,0 +1,40 @@ + +#----------------------------- Global Properties ----------------------------# + +/outputDir:bin/$(Platform) +/intermediateDir:obj/$(Platform) +/platform:Windows +/config: +/profile:Reach +/compress:False + +#-------------------------------- References --------------------------------# + +/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll + +#---------------------------------- Content ---------------------------------# + +#begin logo-square-128.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:logo-square-128.png + +#begin motw.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:motw.png + diff --git a/Source/Demos/Demo.EntityComponentSystem/Content/logo-square-128.png b/Source/Demos/Demo.EntityComponentSystem/Content/logo-square-128.png new file mode 100644 index 0000000000000000000000000000000000000000..1dbe3e85cf58f08270faf30af047db9917cca3c4 GIT binary patch literal 3513 zcmV;q4My^bP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGr761Sj76F)IRX_j$02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;js(W8VM(4Jt`QK~#8N?VWp&9Yqy~J47QY2;m`?q5=j{ zC^3%h|epb+4R?_GY7vyBd73jW&C$W$S~Cj9Ki&sVZX+2s$t9?!}JSSffpmu%)q9NZy( zp2XgiSoB*~#MzMqsw@pXswdiqy-Tla1`onCuEq4WHl*Jc@Ls8Aj%V*mBsxR1SuQ)> zb~fUr^jy3&O=52+R^N`v%8xF^0^cm8*Iwx7&NnxrZ}zTmt&1-Aa4|ZAck6<)WkTc4 zT2J&kcD%WI&6_blzZKIc75K#DnUAs8ZP1)(e=JnG3m2R#Dcbx8KWB0d8WlwJ7-!>- zzBn{2#9+wp##a9r3L1h|%!( z_~$&ae6yq>5l7Xzj%#-U(KDo+fTP-MkDKtv7rosxzYz|0bOdkc@}=Ix<#yz1WTu)sI32GiMahj{QgG# z{Aav>70~cl{QMn6=Ogb?{@{_y8#qGw{m0_=S;{jW?sIp;amBD*?ik~n1!H#1mwE@w zn(7@mggqEv^{(Y-<0Y)Ty>&DU<4yDj5_jqL`;Sz9^dmgB*gl8abg>7luHhFIdWKO8 zV-UWUt*2Am>ln^OsCSQ?e&N6d<%J(+57VoMx}g==CqcuX*)l5_JXPG$J|oCwXfb&Q z&1Rw(9lp6|m$chMeBWfDgC>o1qMk~UjXVgVx3OiEhI!&nR)G;b>(60}c0|LeG_>!r zRhxdidhW^I*ik&%NU&uc_$FIKX>*^vlTF}Kwq{qs@Bx_iI@xB9Xmcmp&8IV_hCsAw z6^PpY}mVQk&L=$_0scQn|w3T%lx!{Q%j z$U9hLv#PCl4QDMs74kF2&}BMr>HfFo9@I3VSq1QAaicA0cvca*rvE^!nEc1?X?WcF z?|w7IBY*@SY~h*D(3$g7aibl!tJ+}xXaDo^fu5-)KkT8yG0)IB$}{f}eXvI4QveLh z8?Eq5&Pp-zqZ0)m?Bbcj*;+C3;ZLF;R)9rxnV|_AgpC#m%-1;^#i(!X6tw$vgCDlg z=25m(oILn}=!+e0$18xzuLaOEALMKlr(BzgVJTZFPTG7{_Qe7;Ee{&VZ!jb^aTYCY zZWev90`#(#;zT2TL|-hR&13WvK+UuA4p}Mk2Jm@l_=)I?4Fb4|trRDEe=qrB1A6}> zZm`9?!Gky(#Yu6s!9idHowMC8ueNnwAhm5iygLN`XAw{DMlKu z68x|PEXy|lI+6N>+2?Wfb0wHFH9#Ildf$R$5ZT#lDwlMJvYUd?^Z-Jo%oRNd;l8ODsSoD zY;hM!J3Crssp`5u-OzEGUx?=Qm(#NZY*KT=X>4(f!~+}|z{_~TsbgrSv^)pr67<+g zQ`a?>bdVz}x5tth7abFu8UUlqBeMGf1A)$w29UWk`8v*U$B-{Fzo# zVvcG-_ZXgeHP>iLNeMctgEr499leWdvjs_sI;ulJ)4gVql>`X!Cup#SD@Xc9b6t ztK)T)GD}L_QEs&PYt#1(sU;b3lox7Eq_G0lBpGp(7Y(1_nzJOyh@-63xYjI6HsmNB z5VhRra9oMT9OVMm#fy98BGI5F>Pykny1*Sk0X=w{5qB)nOtvla!dh>-&;@O;=lI*sB<8RBMM$?s}IUB&30CXqU6`S_$NWKxDUqhVpPw}*cC6)^#ObhD*$D4vu7 z@|~2SJS?7gu!s+52nX6^bL)c^EUPv=4bO}MCS@oU5Z~)G)%T+Pu~4294z$T)w$?s% z7c?nDIk`>sMEh__2-4<0;UK$sa4B0WUbV28Ng2w`UFw?t1Gz-TNW(ng0L#D#R>H^G zVsWCe^2JQbP<}N0QNAe;22T|aunq=+Z!SZNc4pR`NWM7}gD(F`8InQ5llB6l@1Q_UTm zjsF6%@B8Xw88=|)kaYlZ{M`HO+uTC*qc$J9x?5Y z&dLL~PB?U1!@F_ct&PVPfQDbN7lJ%b3RclH=C1WDEnavImtb;r^-aNJ*EFP+2ikmt zttOCfKG%?dqd6J^F1hs5D_@0atZzuuCfW?8UDjq2UNV-6i8)52!Kl8z$y{!&$&Zf3 z^4=n*pPh}Zy^^P!1r6(j1RXnhNY%pqxWuw49*QQ~XdP;3%hWlS8VhKlK`HUw9Su*$ z{S0i%hhEWE>sXjogoa1A>zTEz(3z#9jH7Y{#V_XY_gb=<77cf*uC-G*<&2`tmTjbL zI|KMb6=dO@y3T+WS_; z*fcyS`n4-TlybcwTZ-Rr!y?hCPC%QR8&};fSTxjr+!GC!Db;2ll|MjTu=8C7yJ$4r z8!zo%1_kCU^hxSnygt8)BwG>9U1O^;qn*%T66$AICVA${F+Ofr{?Pk)Yso}&+Qm(q z6 Q?Kag6wXO`L_b9|)b0ge;oH2W#G*H4HFE++t4613SawOeY>$J6FR}OKlectl z^lvSe=c>$aA={$){jb2tJqdr)zJM9I77Kg;GxK}=T#w&x!oQzFo)L+IhlZKKHgUTZ nU?F>2UQze>u?thDmQw!*;F$K>Pk_K800000NkvXXu0mjfkjJwT literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.EntityComponentSystem/Content/motw.png b/Source/Demos/Demo.EntityComponentSystem/Content/motw.png new file mode 100644 index 0000000000000000000000000000000000000000..08c0e6a158a52468e0648b64e0053ba1650b111d GIT binary patch literal 24060 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 + + + + Debug + AnyCPU + {A2B9E42A-B2D1-476D-9F4B-E64824DA57EE} + WinExe + Properties + Demo.EntityComponentSystem + Demo.EntityComponentSystem + DesktopGL + v4.5 + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + false + 6 + + + true + bin\Release + prompt + 4 + false + false + + + Icon.ico + + + + + + + + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll + True + + + + + + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + + + + + + + + + + PreserveNewest + + + + + {587ce536-216f-41a1-b223-ae502c125b09} + MonoGame.Extended.Animations + + + {35fd1f05-af04-469a-b37a-f9b36c34401c} + MonoGame.Extended.Entities + + + {6c8b9e29-d09b-4901-80fd-45aaa35882c6} + MonoGame.Extended.Particles + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.EntityComponentSystem/Game1.cs b/Source/Demos/Demo.EntityComponentSystem/Game1.cs new file mode 100644 index 00000000..9d3d5136 --- /dev/null +++ b/Source/Demos/Demo.EntityComponentSystem/Game1.cs @@ -0,0 +1,124 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended; +using MonoGame.Extended.Animations; +using MonoGame.Extended.Animations.SpriteSheets; +using MonoGame.Extended.Entities; +using MonoGame.Extended.Entities.Components; +using MonoGame.Extended.Entities.Systems; +using MonoGame.Extended.Particles; +using MonoGame.Extended.Particles.Modifiers; +using MonoGame.Extended.Particles.Modifiers.Containers; +using MonoGame.Extended.Particles.Modifiers.Interpolators; +using MonoGame.Extended.Particles.Profiles; +using MonoGame.Extended.Sprites; +using MonoGame.Extended.TextureAtlases; +using MonoGame.Extended.ViewportAdapters; + +namespace Demo.EntityComponentSystem +{ + public class Game1 : Game + { + // ReSharper disable once NotAccessedField.Local + private readonly GraphicsDeviceManager _graphicsDeviceManager; + private Camera2D _camera; + + private MonoGame.Extended.Entities.EntityComponentSystem _entityComponentSystem; + private Entity _entity; + + public Game1() + { + _graphicsDeviceManager = new GraphicsDeviceManager(this); + Content.RootDirectory = "Content"; + IsMouseVisible = true; + Window.AllowUserResizing = true; + } + + protected override void LoadContent() + { + var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480); + _camera = new Camera2D(viewportAdapter); + + _entityComponentSystem = new MonoGame.Extended.Entities.EntityComponentSystem(); + _entityComponentSystem.RegisterSystem(new SpriteBatchSystem(GraphicsDevice, _camera)); + _entityComponentSystem.RegisterSystem(new AnimatedSpriteSystem()); + _entityComponentSystem.RegisterSystem(new ParticleEmitterSystem()); + + var logoTexture = Content.Load("logo-square-128"); + _entity = _entityComponentSystem.CreateEntity("logo", new Vector2(400, 240)); + _entity.AttachComponent(new TransformableComponent(new Sprite(logoTexture))); + + var motwTexture = Content.Load("motw"); + var motwAtlas = TextureAtlas.Create("motw-atlas", motwTexture, 52, 72); + var motwAnimationFactory = new SpriteSheetAnimationFactory(motwAtlas); + motwAnimationFactory.Add("idle", new SpriteSheetAnimationData(new[] { 0 })); + motwAnimationFactory.Add("walkSouth", new SpriteSheetAnimationData(new[] { 0, 1, 2, 1 }, isLooping: false)); + motwAnimationFactory.Add("walkWest", new SpriteSheetAnimationData(new[] { 12, 13, 14, 13 }, isLooping: false)); + motwAnimationFactory.Add("walkEast", new SpriteSheetAnimationData(new[] { 24, 25, 26, 25 }, isLooping: false)); + motwAnimationFactory.Add("walkNorth", new SpriteSheetAnimationData(new[] { 36, 37, 38, 37 }, isLooping: false)); + + var animatedEntity = _entityComponentSystem.CreateEntity("animated", new Vector2(50, 50)); + animatedEntity.AttachComponent(new TransformableComponent(new AnimatedSprite(motwAnimationFactory, "walkSouth"))); + + var particleEntity = _entityComponentSystem.CreateEntity("particles", new Vector2(500, 50)); + var particleEmitter = new ParticleEmitter(new TextureRegion2D(logoTexture), 500, TimeSpan.FromSeconds(0.5f), + Profile.Point()) + { + Parameters = new ParticleReleaseParameters + { + Speed = new Range(0f, 150f), + Quantity = 30, + Rotation = new Range(-1f, 1f), + Scale = new Range(3.0f, 4.0f) + }, + Modifiers = new IModifier[] + { + new AgeModifier + { + Interpolators = new IInterpolator[] + { + new ColorInterpolator + { + InitialColor = new HslColor(0.8f, 0.8f, 0.8f), + FinalColor = new HslColor(0.5f, 0.9f, 1.0f) + } + } + }, + new RotationModifier {RotationRate = -2.1f}, + new RectangleContainerModifier {Width = 800, Height = 480}, + new LinearGravityModifier {Direction = -Vector2.UnitY, Strength = 130f} + } + }; + particleEntity.AttachComponent(new TransformableComponent(particleEmitter)); + } + + protected override void UnloadContent() + { + } + + protected override void Update(GameTime gameTime) + { + var deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds; + var keyboardState = Keyboard.GetState(); + + if (keyboardState.IsKeyDown(Keys.Escape)) + Exit(); + + _entity.Rotation += deltaTime; + _entityComponentSystem.Update(gameTime); + + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + GraphicsDevice.Clear(Color.Black); + + _entityComponentSystem.Draw(gameTime); + + base.Draw(gameTime); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.EntityComponentSystem/Icon.bmp b/Source/Demos/Demo.EntityComponentSystem/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 RJoIeLznU7AhJ`o~_y6Yy51#-4 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.EntityComponentSystem/MonoGame.Framework.dll.config b/Source/Demos/Demo.EntityComponentSystem/MonoGame.Framework.dll.config new file mode 100644 index 00000000..09710ae4 --- /dev/null +++ b/Source/Demos/Demo.EntityComponentSystem/MonoGame.Framework.dll.config @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Source/Demos/Demo.EntityComponentSystem/OpenTK.dll.config b/Source/Demos/Demo.EntityComponentSystem/OpenTK.dll.config new file mode 100644 index 00000000..9342d688 --- /dev/null +++ b/Source/Demos/Demo.EntityComponentSystem/OpenTK.dll.config @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.EntityComponentSystem/Program.cs b/Source/Demos/Demo.EntityComponentSystem/Program.cs new file mode 100644 index 00000000..9c8da56e --- /dev/null +++ b/Source/Demos/Demo.EntityComponentSystem/Program.cs @@ -0,0 +1,16 @@ +using System; + +namespace Demo.EntityComponentSystem +{ + internal static class Program + { + [STAThread] + private static void Main(string[] args) + { + using (var game = new Game1()) + { + game.Run(); + } + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.EntityComponentSystem/Properties/AssemblyInfo.cs b/Source/Demos/Demo.EntityComponentSystem/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..e79fb489 --- /dev/null +++ b/Source/Demos/Demo.EntityComponentSystem/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. + +[assembly: AssemblyTitle("Demo.EntityComponentSystem")] +[assembly: AssemblyProduct("Demo.EntityComponentSystem")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. + +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM + +[assembly: Guid("9b7203c6-a9a6-40e9-a798-893df7f10bf1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] + +[assembly: AssemblyVersion("3.4.0.456")] +[assembly: AssemblyFileVersion("3.4.0.456")] \ No newline at end of file diff --git a/Source/Demos/Demo.EntityComponentSystem/app.config b/Source/Demos/Demo.EntityComponentSystem/app.config new file mode 100644 index 00000000..5c73fc53 --- /dev/null +++ b/Source/Demos/Demo.EntityComponentSystem/app.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.EntityComponentSystem/app.manifest b/Source/Demos/Demo.EntityComponentSystem/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.EntityComponentSystem/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.EntityComponentSystem/packages.config b/Source/Demos/Demo.EntityComponentSystem/packages.config new file mode 100644 index 00000000..9b38dcf7 --- /dev/null +++ b/Source/Demos/Demo.EntityComponentSystem/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Gui/Content/Content.mgcb b/Source/Demos/Demo.Gui/Content/Content.mgcb new file mode 100644 index 00000000..fb1a2272 --- /dev/null +++ b/Source/Demos/Demo.Gui/Content/Content.mgcb @@ -0,0 +1,50 @@ + +#----------------------------- Global Properties ----------------------------# + +/outputDir:bin/$(Platform) +/intermediateDir:obj/$(Platform) +/platform:Windows +/config: +/profile:Reach +/compress:False + +#-------------------------------- References --------------------------------# + +/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll + +#---------------------------------- Content ---------------------------------# + +#begin small-font.fnt +/importer:BitmapFontImporter +/processor:BitmapFontProcessor +/build:small-font.fnt + +#begin small-font_0.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:small-font_0.png + +#begin adventure-gui.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:adventure-gui.png + +#begin adventure-gui-atlas.json +/importer:TexturePackerJsonImporter +/processor:TexturePackerProcessor +/build:adventure-gui-atlas.json + diff --git a/Source/Demos/Demo.Gui/Content/adventure-gui-atlas.json b/Source/Demos/Demo.Gui/Content/adventure-gui-atlas.json new file mode 100644 index 00000000..002a70cc --- /dev/null +++ b/Source/Demos/Demo.Gui/Content/adventure-gui-atlas.json @@ -0,0 +1,174 @@ +{"frames": [ + +{ + "filename": "monogame-title.png", + "frame": {"x":2,"y":2,"w":504,"h":120}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":504,"h":120}, + "sourceSize": {"w":504,"h":120}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "panel_brown.png", + "frame": {"x":2,"y":124,"w":100,"h":100}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":100,"h":100}, + "sourceSize": {"w":100,"h":100}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "panelInset_beige.png", + "frame": {"x":104,"y":124,"w":93,"h":94}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":93,"h":94}, + "sourceSize": {"w":93,"h":94}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonLong_grey.png", + "frame": {"x":194,"y":226,"w":190,"h":49}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":190,"h":49}, + "sourceSize": {"w":190,"h":49}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonLong_grey_pressed.png", + "frame": {"x":2,"y":226,"w":190,"h":49}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":190,"h":49}, + "sourceSize": {"w":190,"h":49}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "grey_textBox.png", + "frame": {"x":246,"y":124,"w":191,"h":49}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":191,"h":49}, + "sourceSize": {"w":191,"h":49}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonSquare_blue.png", + "frame": {"x":439,"y":124,"w":45,"h":49}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":45,"h":49}, + "sourceSize": {"w":45,"h":49}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonSquare_blue_pressed.png", + "frame": {"x":199,"y":124,"w":45,"h":49}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":45,"h":49}, + "sourceSize": {"w":45,"h":49}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonRound_close.png", + "frame": {"x":460,"y":226,"w":35,"h":38}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":35,"h":38}, + "sourceSize": {"w":35,"h":38}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonRound_beige.png", + "frame": {"x":423,"y":226,"w":35,"h":38}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":35,"h":38}, + "sourceSize": {"w":35,"h":38}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "buttonRound_beige_checked.png", + "frame": {"x":386,"y":226,"w":35,"h":38}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":35,"h":38}, + "sourceSize": {"w":35,"h":38}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "cursorSword_silver.png", + "frame": {"x":2,"y":277,"w":34,"h":37}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":34,"h":37}, + "sourceSize": {"w":34,"h":37}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "checkBox_beige_checked.png", + "frame": {"x":75,"y":277,"w":35,"h":35}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":35,"h":35}, + "sourceSize": {"w":35,"h":35}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "checkBox_beige_unchecked.png", + "frame": {"x":38,"y":277,"w":35,"h":35}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":35,"h":35}, + "sourceSize": {"w":35,"h":35}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "progress-bar-blue.png", + "frame": {"x":188,"y":277,"w":36,"h":18}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":36,"h":18}, + "sourceSize": {"w":36,"h":18}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "progress-bar-green.png", + "frame": {"x":112,"y":277,"w":36,"h":18}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":36,"h":18}, + "sourceSize": {"w":36,"h":18}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "progress-bar-red.png", + "frame": {"x":226,"y":277,"w":36,"h":18}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":36,"h":18}, + "sourceSize": {"w":36,"h":18}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "progress-bar-container.png", + "frame": {"x":150,"y":277,"w":36,"h":18}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":36,"h":18}, + "sourceSize": {"w":36,"h":18}, + "pivot": {"x":0.5,"y":0.5} +}], +"meta": { + "app": "http://www.codeandweb.com/texturepacker", + "version": "1.0", + "image": "adventure-gui.png", + "format": "RGBA8888", + "size": {"w":512,"h":512}, + "scale": "1", + "smartupdate": "$TexturePacker:SmartUpdate:916ebf93558b06c639197c77d59b8bd1:47e52a3a5ea7d18877b92a0b5013fb0e:664eb9b3a42185355129a17c82b53558$" +} +} diff --git a/Source/Demos/Demo.Gui/Content/adventure-gui-skin.json b/Source/Demos/Demo.Gui/Content/adventure-gui-skin.json new file mode 100644 index 00000000..e60ffde7 --- /dev/null +++ b/Source/Demos/Demo.Gui/Content/adventure-gui-skin.json @@ -0,0 +1,91 @@ +{ + "Name": "adventure", + "TextureAtlases": [ "adventure-gui-atlas" ], + "Fonts": [ "small-font" ], + "Cursor": { + "TextureRegion": "cursorSword_silver", + "Color": "#aaaaaa" + }, + "NinePatches": [ + { "TextureRegion": "panel_brown", "Padding": "10" }, + { "TextureRegion": "panelInset_beige", "Padding": "10" }, + { "TextureRegion": "grey_textBox", "Padding": "10" }, + { "TextureRegion": "progress-bar-container", "Padding": "10" }, + { "TextureRegion": "progress-bar-blue", "Padding": "10" } + ], + "Styles": [ + { + "Name": "close-button", + "Type": "GuiButton", + "BackgroundRegion": "buttonRound_close", + "HoverStyle": { + "Type": "GuiButton", + "Color": "LightGray" + } + }, + { + "Name": "white-button", + "Type": "GuiButton", + "BackgroundRegion": "buttonLong_grey", + "TextOffset": "0 -2", + "TextColor": "#f4a460ff", + "Color": "#8b4513ff", + "PressedStyle": { + "Type": "GuiButton", + "BackgroundRegion": "buttonLong_grey_pressed", + "TextOffset": "0 2" + }, + "HoverStyle": { + "Type": "GuiButton", + "Color": "#9E4C16ff", + "TextColor": "#ffffffff" + } + }, + { + "Name": "checkbox", + "Type": "GuiCheckBox", + "BackgroundRegion": "checkBox_beige_unchecked", + "CheckedStyle": { + "Type": "GuiCheckBox", + "BackgroundRegion": "checkBox_beige_checked" + } + }, + + { + "Name": "brown-panel", + "Type": "GuiPanel", + "BackgroundRegion": "panel_brown", + "Size": "400 300" + }, + { + "Name": "beige-inset-panel", + "Type": "GuiPanel", + "BackgroundRegion": "panelInset_beige", + "Size": "385 280" + }, + { + "Name": "label", + "Type": "GuiLabel", + "TextColor": "#444444" + }, + { + "Name": "monogame-title", + "Type": "GuiImage", + "BackgroundRegion": "monogame-title" + }, + { + "Name": "text-box", + "Type": "GuiTextBox", + "Padding": "8 0", + "BackgroundRegion": "grey_textBox", + "TextColor": "#444444" + }, + { + "Name": "progress-bar", + "Type": "GuiProgressBar", + "BackgroundRegion": "progress-bar-container", + "BarRegion": "progress-bar-blue", + "Size": "100 32" + } + ] +} \ No newline at end of file diff --git a/Source/Demos/Demo.Gui/Content/adventure-gui.png b/Source/Demos/Demo.Gui/Content/adventure-gui.png new file mode 100644 index 0000000000000000000000000000000000000000..29291a7d0c098ce23d96b3322d2600a9f5b91f0d GIT binary patch literal 41892 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®+`ia-@X>?%-X|_$dFJl7V33Udbv6Ew$YJNLn9$opM zkSLToZA#$?Ck{KvJuP|s#lEhxrUoBxLI&06L&i}N1rM)O^gMSj9d^iU3?dwHvrC$P zAF`88y85BZ5h*;gHQS24MDlA;_dncO{CF&Kw_@E~Q?q>R1xs1w1lKRhl>^Q{aoFFL zx_3pMbY8qj8)h!B+j=m~Ae0yMF@#vt`Ly0@m269th>Ba~(`>sIqit2&Z)ZCG^6MbD z$DnLxT*NYH70{W~EO~rf z=b9HDYHEJ1PIgYMgVtY@@kdPs!AuSUT(nU}&3GV0yaEcd8pa)}v`fv_2%jetP6o$@ z92C3j*e~wnw=-UdbVjrE)T5~?gc2m%evN5H^C^F8WbU8D%jDb>HIIpy&kg*%y|adE z&&2M*e!h<*Pt^Hb=~BtpF`6d<#a%q$z@WVw%IrE?8>ZdQNxK1cWA?nfJPd2p&r~7Z zC6|dBY4qj8=}2+^pCq4+-QB|g;!t9pqJ5gV;`RU*rzWQNZNS0*FnM->c+22Q-thj; zoU1))x7M`O>4>cC0c|ky8r!+tjUB+~HKFz=ZE?1>DcoJ`u?$!G;NwmUgZQnss}&zl zoC*cI^^juXK}x3Mq^E8M_7;JWiB(>kK*2=ZZ6dUuM`j`F7e~EAk~<`a;&h$` xTjloq^I7yB)#z%TNPyq||MP#N2bu?$48GP6TW2pKBTrkTs|D9Ay=n34e*n^$?`Z%4 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/adventure-gui.tps b/Source/Demos/Demo.Gui/Content/raw/adventure/adventure-gui.tps new file mode 100644 index 00000000..efa7c9d2 --- /dev/null +++ b/Source/Demos/Demo.Gui/Content/raw/adventure/adventure-gui.tps @@ -0,0 +1,216 @@ + + + + fileFormatVersion + 3 + texturePackerVersion + 3.9.4 + fileName + D:/Github/MonoGame.Extended/Source/Demos/Demo.Gui/Content/raw/adventure/adventure-gui.tps + autoSDSettings + + + scale + 1 + extension + + spriteFilter + + acceptFractionalValues + + maxTextureSize + + width + -1 + height + -1 + + + + allowRotation + + premultiplyAlpha + + shapeDebug + + dpi + 72 + dataFormat + json-array + textureFileName + ../../adventure-gui.png + flipPVR + + pvrCompressionQuality + PVR_QUALITY_NORMAL + atfCompressData + + mipMapMinSize + 32768 + etc1CompressionQuality + ETC1_QUALITY_LOW_PERCEPTUAL + dxtCompressionMode + DXT_PERCEPTUAL + jxrColorFormat + JXR_YUV444 + jxrTrimFlexBits + 0 + jxrCompressionLevel + 0 + ditherType + NearestNeighbour + backgroundColor + 0 + libGdx + + filtering + + x + Linear + y + Linear + + + shapePadding + 2 + jpgQuality + 80 + pngOptimizationLevel + 0 + webpQualityLevel + 101 + textureSubPath + + textureFormat + png + borderPadding + 2 + maxTextureSize + + width + 256 + height + 256 + + fixedTextureSize + + width + 512 + height + 512 + + reduceBorderArtifacts + + algorithmSettings + + algorithm + Basic + freeSizeMode + Best + sizeConstraints + AnySize + forceSquared + + forceWordAligned + + maxRects + + heuristic + Best + + basic + + sortBy + Height + order + Descending + + + andEngine + + minFilter + Linear + packageName + Texture + wrap + + s + Clamp + t + Clamp + + magFilter + MagLinear + + dataFileNames + + data + + name + ../../adventure-gui-atlas.json + + + multiPack + + forceIdenticalLayout + + outputFormat + RGBA8888 + contentProtection + + key + + + autoAliasEnabled + + trimSpriteNames + + prependSmartFolderName + + cleanTransparentPixels + + globalSpriteSettings + + scale + 1 + scaleMode + Smooth + innerPadding + 0 + extrude + 0 + trimThreshold + 1 + trimMode + None + heuristicMask + + pivotPoint + Center + + fileList + + ./ + + ignoreFileList + + replaceList + + ignoredWarnings + + commonDivisorX + 1 + commonDivisorY + 1 + packNormalMaps + + autodetectNormalMaps + + normalMapFilter + + normalMapSuffix + + normalMapSheetFileName + + + diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/buttonLong_grey.png b/Source/Demos/Demo.Gui/Content/raw/adventure/buttonLong_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..b8c3fe09dc4da9950b0d82d926402377ecee47d8 GIT binary patch literal 599 zcmV-d0;v6oP)40*XDwlt;L=*c>>#7lA|oXFk$$L%j#`4_Bfa9u4Aj^(`rg6?YBt9UgH_gmu zv)s=2fv!>8YFw?Wd4>O}1;7h69|nWL2ZI4mispMkQ?Up184x%*+V?|!isLvcR_+)a zbTsn@oR09M_4;#(WY;s5{uEp$a#bW?9;ba!ELWdLG%E@EtNZ)9Y7E@N_eaCC1j lX>DO=WiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLkV1f~D82kVL literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/buttonLong_grey_pressed.png b/Source/Demos/Demo.Gui/Content/raw/adventure/buttonLong_grey_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..59b14d12ab2115f0ef2d6c50808f30e30294837f GIT binary patch literal 645 zcmeAS@N?(olHy`uVBq!ia0vp^`+(SxgAGWgOcI^|q!^2X+?^QKos)S9a~60+7BevL9R^{>jmGfQ{0=&kgAA+(F(XhX-3)=-zl`**dx zklw4f_42aN?6Y@-D;(7CDLviN;iY!+vrK{d4vr&wP`u7&lTNm*&HC%F!*9MVv%FAp zZS$?L$II{Zw~IMDJLFv1<$8bH(U&E&zW@H~wEQxo)cLBg+f#qs=CZ#!_hN>K3`^3& zWBw19pM2?78B{O%`De`f-gRaYJg4U0ep~kWXp&&fot>}lFhlgBXb>1!f(>dhz1npv! zYIe9F8Gw*j#Ty?!my4IlH%!{@qq3VlSA2)O;l_3QdFQ_lRWjT9P}nvpMB476vfI{& z?QIRqltJe3=b6nGz23|@_wZAW|BW}NneO5U5`MhDgn2^s50ScQsqc4PeEqdc`0+;z zi;n%Fcb9w465DV4-~G>@`X`EGGZ} literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/buttonRound_beige.png b/Source/Demos/Demo.Gui/Content/raw/adventure/buttonRound_beige.png new file mode 100644 index 0000000000000000000000000000000000000000..69cbb7ba27900d43ff74555b266d232c88f5c35c GIT binary patch literal 983 zcmV;|11S87P)u5E+!wE z8pbhCT&MU6!C#NrNKGF!7yr;10xZX7 zzY3_H+U{8X)XDetsJZ}OVwV;x86qIW(MmsXsDw!m#k!t-;3yEW*|VD_;w* z)rksrw z?*UcVW$^=h${;ABAr9gpu9_JIheW;PKKx6YQ+=hIA&%NYl(@v8gJJy-0tk&U|AXlY zMp1D~)XY}#`9Odmj;I;nkanu^>M*K_jgQp?9MWcKJ}mYb)c-L03~)&4*z7f)=!VgO zc>>HPUQS6@E?+ol>@{vv#iN9%7vRA5G*Pca65{F3&0QPKj#=TU5AhWoUVs^UHGAVc zUhdbEuAgUcmgbI)c!(Rge)SA+0L+MD{;kz$Ueu1;Cp~IK6|N-tG#u(PF*$ke6nhRU z3xH69PM+|@3i`2;_=!XyzIgKV;AJEnywvHMf-iD{8pDyHrO^X0M~r9kV;ERT%}o;! zZwV~e)IgiZIKXoa)>9*( z29nT#92d1>d_3BuHb784(#t+%)i59HSTzP9zE1QQpD_Z$LT(oXg;bXppO^x}dyHcq zK?qgj7l4dfz59=nG76iG(XL^gppUN9SOUaMl|H|jVNWvobEt)J%o8Z-3y3Icufbuj z=5^|yG>_JpdI2$EM;~@GHO`)7Vm@tr+%6@50X}aaXFR0zE&u=kEp$a#bW?9;ba!EL zWdLG%E@EtNZ)9Y7E@N_eaCC1jX>DO=WiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLk FV1h|MzU2S_ literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/buttonRound_beige_checked.png b/Source/Demos/Demo.Gui/Content/raw/adventure/buttonRound_beige_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..637341462957c262c9ca26fea4a6fd547441f7f0 GIT binary patch literal 1178 zcmV;L1ZDe)P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^DS16z6k00at2L_t(oN9~u-OB7)k$0v#)g0e#pdkJsR zr68!Im+l>cpp(=;;HhJI?Gi#iC_0pcS+d9?lDoE;p_oW4i&)tfnuuu_vPrlMgD}0H z$9a}<_8pzs^41r=usiSjJkNKY=Xsx*anfLMwtRHMt6lOuuXCg3jmA;d%|7-ArvDDE z`@78qcaR4kh~APyEH10e^j=n3xEAoqJUGfj>Zo)@#)>K}b7Dq3kvw zy*L=kK9D=M1xw10lYR9}Y1yP?aXrK_)E=3uOp75US^b)~21rY?su{w+2y)%B_4sR_ zto>XO1MVbkS#~2CQbEKKL1rce61G6PWW_+6b$a}{)uHm+^q}8)ztq6*pN6dam8H=h z@lPDkP%h2N?97yGr0HyqAi-=RqMRHnSnVO@Cl2vMkclrssF_?b(5%EYY*Hc0-u|M$ zJUiUrhf@~Kj)>8t%*12^rzdI*SHBdj0e540YQ*YKv!j!mXIZ^OI#Z~r&Da(wDQ$un zj1o_052fNM%O9R8EZRyG*Q`lt6GI&05f`AtkzWS6-mSFR=87#qT1I^mhj_$Q)Wxs> zqejr?JS}a0HKyXf7-fSP)5X8|p*^!a`>Mgn<~%K{_N#x!anL# z2cMoMbU2mDyo^DeGo1gZA+!ZaN}IpvoI!`vlO4RqAKt`RjGMq|9|g*|2d7S8eFMx6 z4!1jJ&$YG6KLhQXxMx$^a@ooQ^;II=FX-U$)H1iQ)W=1AyW8oho%9)HvxN*h&5FMD z5#Q)If|x@$Zr;AgMc1t*exHde8)9wymAp&ipE$$=SFc<@j}FA_Gt4Y6t>jtI-r4In zJ?#}~T*o;P=n%BDp1yEOXO5mM1aSmyj?+@#@SvWcYIXgCiJc+7s0eV-Fmv}|_hs2- zpn@QGWDAg#TAHvBZagRtV)i2^9J^1jvzZ=DR8UF<1X8Fhb~4;u%Wg zMnTP}U51TXGHP2G*cwoflSZcEK4BR1tRr4+u-6`;G_(Y9437tKt&noTupqjg^y(Z+ zO7>%?rzRqV8*eC26dW-TgrPnz08UBu*hqh@Fs`%CJ{19iQzL#25puvV5!fgtgEY1d z#;M1& literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/buttonRound_close.png b/Source/Demos/Demo.Gui/Content/raw/adventure/buttonRound_close.png new file mode 100644 index 0000000000000000000000000000000000000000..197226a236ee0fd23d26cb677fef4c83dc52963d GIT binary patch literal 1231 zcmV;=1Tg!FP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^DS16z6k00citL_t(oN41yPZw*l#$47`nB$fxkeZh<6 zK}1N!uD6YcT52zi?Y6gwNRfsTw5TqKmPkk~sU?<1v=NoQ2$2xtMI;guFFbmx|6rWY z>HMy9r{~-|)ACEcxp(ILe&_d{-!^BwI8wWL-q>@g!qVn+vc5T8^xBPNJ$mQ|rvFZw zQiaQ#E0Y~9dy4(Izz+LhtHH~;@I2=2s7`@jFhG`A?d5JHa}7rd?Ay*~Wgs z*72mVvgn}Npief#!Ly51e(#n2k%2yT2BE&#Q8H6A9!t)JNDEGq7w+LDQsqzyvO8lnxQM%s^V(1xU>y=Jx5L0k}3 zi4gk-gg#l@U+Uy?^(t+^lf+F+J`f=xgdhAdlL89;LbzA}QmhZ^w^}zGDjuCF*Zboq zh)#C8Br3O#ZPJPqooyq~(_X7#TNC8dA^rHlpN@|5uZfVea8z6ci-TW3-fOs=MbV+l z!qL%Wq?MVN{R(O82Bs6i+pg9uomY>V2k5v6NpxgV^DfJzNM;H-wHf0$>sr5QX#@r%{$%#(RPmPOf_Dmwxn_#X;rCBH*84)#2K?X;znYBV;qeFbwC>f5`R0m? zP#B-zJha*i@Pj}63Wp3C7J$t#jC_Q?etc?8O&H>HNMry{ZX@#Z+sjBqz&{~l>nszw zYQ@9=GOEXa^G9mt=8?5lLqR?wf^gf1fgk)y&A`KJNEN>0B1$(!B_eRm7$AdBx(OcM z$sJ2?a3OPs{dN%5ZQVsEJZIqH9Vnfj;)0VHi>?W5>majh__Y-^cD90+ z2`neT>h%S?yn-1Mr*Q$KZd|D{3Au_iijEv5%zA-`r(|6Hj%A(Pl+#_Vw>E{DuQ+q* zFzh5Ma_Yms;xPs?qsohB6?5~#zLl9b_y0Q2aF%9&{NNA2s}@c#fCprTDI`v(miMwC zwe!DEdQvO8a6NBQz(dQp*;6Oal$j%)1tD6{wsBm@2@gmIsdoONd?)a)Sp+gtAyHK_ zcOyzBA;1&a97Khr#w5an2kC*#a7dUkULjGldBH&;Bwq=DmLJS_lld`cd=>nrPVuLp z3pXs}jNBzql$4R%u9m+aVssjjave1o^Q=Q&Y_OLaAvKf)eiSAIeyyU@1x!LzJ>iu( z6cy-WCtVXF!h;V;PgrO%O$bAIT?i>c{kUPLlNk3|M^8wAplkHL3J@8g5J^zfDFYO? z492*?&ZrNNGc_*BA_R!kk+Q{gGLvi|wXCCOq-01$L@=b<%?$?&Yu5}$C~O9k%}G9B t7r8#-2$34Cpl6Z;q?UE`Vx+|L{s2vJ!;<;-7MlP7002ovPDHLkV1ib+Ju3hJ literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/buttonSquare_blue.png b/Source/Demos/Demo.Gui/Content/raw/adventure/buttonSquare_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..c165e51f7feb1169ed3cea51e4f87617a1e6b93c GIT binary patch literal 499 zcmVmmHIr!llj&|noW~*_KKvB&${Z61upp1_XCq0kbebE15T2eOOx?1 z)va)364ay0Ll(G})z7^uNwWn`I=wLq=(@mHESYSfOxY*%ue&=R>9h8g`BBw@10J$b zwG|C8dC=&xz^(?awP<<_-12Ls1ubYn|9`^HwOwd{X}hxmy$ZGheG%R2qvO6^XiBp+ zl-)znf)=!(1ubYn3wkrr_(#V&G)H(TG&guDG~Uhdj%E#-8@Lpj8(8*fL2m^5=I+T1 z8YcsD;WWHt1%?MM_~3+B^#?_}s~ab*yIb(V39s7s+sm?ZZOc(R4uMyBdxtve-D?{< zws69$TrYUXpx%r%t#59D3qCmERqk%^f)iT;uW}rJ+a`3a<`-WhI6J}A1~8mIKA&(r z-_6&{8_Ok;yWk`12iKxHZH|W>t^fc4Ep$a#bW?9;ba!ELWdLG%E@EtNZ)9Y7E@N_e paCC1jX>DO=WiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLkV1k0b+gShr literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/buttonSquare_blue_pressed.png b/Source/Demos/Demo.Gui/Content/raw/adventure/buttonSquare_blue_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..cf2ba7ec23ecbb3d37eca8a7772d89959e48afe8 GIT binary patch literal 510 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^DS16z6k00C}EL_t(&L+#mbO2aT1$MN3Gqj&_tf16sY zI<`3n4n;YTL6^dNpIqW(?1_`H zCr-v*H zY=pNku6@D5Xu1>^#u9vl{_qxfQQM|FS)MHX@!1t!q#Ydau#G=$LL*G>3?|}Y?cn+m zjig1|u`Q$jyNnK1a_DMwofaBk{<%v6{T-YH`gDBb_YTg}LUY4%o*o)ybf_{qR2dzr zj1E;shbp5(wVr7Fqa!WUtQQ?4{7+~U6P!)IqVa5oXEf;zH0nji21dQ;*ubb4EiKY6 zqeHbGXnXtch8Kgw3p#OBU5X2};yoAm;54p%?e-8SGt=EsjKN1}+dR=uEe;UwOj@AX z?r=&jHg-F=$?e$ksBN=_?~8P?c5u;7Esdgh2a1fy!%ZbAH2?qr07*qoM6N<$f?!M5 Axc~qF literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/checkBox_beige_checked.png b/Source/Demos/Demo.Gui/Content/raw/adventure/checkBox_beige_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..320d70f273240e0bbb699b5b5abffe64bcfb547a GIT binary patch literal 692 zcmV;l0!#ggP)500001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^DS16z6k00JaQL_t(oN9~x~O9DX@hxgULxS)p$BJiOg z2qG$|uqdPl^T9;K%v6f3AVMO#S)@Xwvfc$x{x(O}^{l&IR)ak7fjc|1=i8atad#vH z5!s6J*SefdKFFD5x>AzmMww-S>mv{HA#bC|))FZfb19|Pn4+2ACgrnf*KZL~sgR>& z;$GqH@yaqp4&)O752;$tmvK;#zbSCMLeAZ#k%4^3i+~4)iR$$_#m)}MwLL`<_aa?- z?38=;Sq83;JjjQh5~0W-Q0U&7W*b`t^6AQ;>$pZ%fqWAgj{ha|a_6JvtuWnO_}TMn zESG`E>}pKm&=sW5xRcD)5e4!!_lFuH alJo=oxvGr4q6wV<0000500001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^DS16z6k00CY}L_t(oN9~xwO2a@9hWE{U6d%E(q98q} zpddX6UbR9mCb5)2OOaBLR_UgqAWih-Blrkw|E;r!GBF-H+ZD3#L9)r@|42y4j-rw4 z+pQu?uIAHZ1U{ZSMheP69&&#amIISqkuQ+H6q&}`H2E~RH22Z5rF*?A24x`62`xNS zq2m|qJfuywP#WY~nT3bKMy?}w@G(6xx_@fkMolqredJIk-5o0fFqyXY*kUP=S1JRz zA}J`dmRY5iDI*w}+2AY;8Hmtpy-}G}k&Vi{4$n=$eGrBWF^n4F$bed=jQ=Hr{|v5B zf=U^mLVuD0K7=UiR~dXE@ulQ0uudvve2IWc8DAoxQidy%qLwKmY?)$q_l1pK`_LX3 zcaPY@bwevk`Ux<0TjLl zgva)i- zt+u?p{FVQHcDY>7Ef2i_5DJBu()jhC+)@C25D?n9R;#g-lM}YHv%@sN5V3eT9DY3% z5TpYe9UmXF+uK`)b$55iE-x=xrBY#ATU$L)JW78MEmJ`}9?vH@&t|i%)oRHw;%c|s z?Be2r?eFiiXf!GVEi5d&GYw>VdioWdZftCHK(t`Qg%nEZ`fX-V#upbCf5CCRULP2S zY6*2?7KqL3^?rfVYPBkZ+y~QaHsuug{r;C`fQ-(~&3%N!R4Ua4avuzenG|JKR3^Ez zo3*vI9*}-8P#38RjnE8`7lA! zP>PK9mPg#C=I7^QP!JqKMS5xmqkvK*4o4^oaC($A2^iE1sR*{cy*;p+&d$!ddJBf5 zI506}2LX8o5HhFJ>7(et_V)HzqtUn*CY?^pDxzl-iG*$#8#g<_U?_^UgLL7@&<_SF z5~GmGWZ2>1Vds~w4SKFYy^M*`!5E<7NHSLzvj{^InjpwFH#a-imzI`R^%U@9sv9y4 zNHJZ?VisWvg+dnur3cUd%b*J zj1GDa0C1WUA)q?C2QMH!Z!_9~t;%8+Ye!iVu~>}p{{bMw@Ye86dNIRmgrrV~s(uh; zfZ-v|x}j+?&hgs(Ll!uY+fpr)F7s$$XbR0 zW2NiZOzgfY5OyQ&UJb@7&7@Jq^+{|>^@87FK@3#TD)yid7HKp4|Ar7@sE#JoApQbI zb@KVgjj37y001p?MObuGZ)S9NVRB^vVtFoNY;SL5WO*)Qa(QrcZ!T$VVP|D7P)Z)9b1s0M%T00000NkvXXu0mjf_2jzU literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/grey_textBox.png b/Source/Demos/Demo.Gui/Content/raw/adventure/grey_textBox.png new file mode 100644 index 0000000000000000000000000000000000000000..c423ab524b6299c6109059059e8f6cac340c5e25 GIT binary patch literal 586 zcmeAS@N?(olHy`uVBq!ia0vp^`+?YygAGV_2UM&BQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XB4ude`@%$AjKtah8*NBqf{Irtt#G+J&g2c?c61}|C5(N`I z13g1y6XxhDpsBk&T^vIy;@;jpxT?uPqV3_k|6QwGFDx>9%cQKaQp1sX{ldrUJ|<@i zoXYqA-(BI5UJ|xmiRJ8?+~@;K-zYqAEGyW4d#~AS-+a6I%+Fftt`@B;?DQ*1%u_tD z>yER)+!pTbx8J@lu=wJ)TsWcc*4_8tYfmqHeg4|h+6{5*@B4e?86H^m!FBPm%^$Oi zHb$i6v#mM3_wV8#PiySl&13bZU;kUjex}MsZvW$Wz3H`Yy6kLNcI}+a?(@#MmMRIIN3;A>Y zxiOH@_T!=0$HTfnJ&PZ`f5z|`s7=uRj#AwYQ;WL4r*5BRe8$_iU*~j+-~lDLxx9Vx z$M4D{$U*c0?P5D#zc+5OD?>MsvHR{MAOm8|FY~&$rxtns-QfCXhS1-q%WlQ34YTrp z%x`_IHqZXlF_9Text^=G?f?F$R=z`T!sCw~e+>NpTZW3b-rrJ^9QgjCXT@*k;Lm@r zO@E3E>|jeJu)!>7}X4(u6{1-oD!M<6zdN; literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/monogame-title.png b/Source/Demos/Demo.Gui/Content/raw/adventure/monogame-title.png new file mode 100644 index 0000000000000000000000000000000000000000..85e921434a7c44e689df3032168466fe4cff0b90 GIT binary patch literal 39147 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/panel_brown.png b/Source/Demos/Demo.Gui/Content/raw/adventure/panel_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..97c381ba6000d74d29284c3e8bef0f9929c8ffdb GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^DIm+Rk9S(g)J+CP5h zE8~ni#8;+fJ>g38LZcLmgPg@CFV*;Dlos=RyuYQ>$m(mxi3y98xLl7FJbI{?IDLcn z4b?s0q<>8-Ik&OP^Ip&L4*|E{D*UX?*rcXxsP?(zuy^?*w+)kBw$^^l`nYN7|M|1m zr`_es);@c)bK{!k$o2kx>WKv>Hk{JzYg#2mo&KzWp{y&j8W@~lh>1g?f#H$2)ibsZ zcZqiy`U-MiY$fd&IXpT`qd(WrS;4gAh@JgD&W`sQ4Ha!n9QU0$1RUUqfw2V%u^`C+ zl_1FgRUu2R2$`_zZtR0Q%`c{jE~sExRB}_H?I|aR#G5OOKy^$k0;iZ=#DAs+%&X;R zJZdcP_3KX==F>ZkW4CYT`aa1vUt)Pv!^C>4u!?8d`g81q0FflrPtDav6o1% zbd+IrSL@9BUG?$l&9?_H-g|rXzW zgX_X{{gLuTZa-t;1d$aJmQV5lreEC>*NBqf{Irtt#G+J&q)NS{ zoc#QhluEtiqRN7je7(%v#Pn1>U=A=cam`E4Pf0CW!B+ncsFA_b)z4*}Q$iB}Caqhj literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/progress-bar-blue.png b/Source/Demos/Demo.Gui/Content/raw/adventure/progress-bar-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..16246a51557c26ebc2fb6f2554bb67dbd8fb4ec9 GIT binary patch literal 542 zcmV+(0^$9MP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^DS16z6k00E9kL_t(YOU;%)OT$1I#`6tav?WXZH&~=v zM4bHyegr>;yGX06AP5d32$g_Ttc~K*L2z);$w3gRQczIo;0HMGcjiJuUT`oM93IH! z?w;SnC3o+6N~w&-8sTcGdA?t6c6)v^yz{p%R4&q9c;XF1Vy7DAjqZw`G!)HTNV8xj zGsF+0jd0lxoY=Wmv#m!pe>_n2lUKEL`IU?C!V_;8mIpf(sI=ax+m)#vK8R*61j~fd zY%;`w^mpykF}-&yPIM`lu*qNo@pJK_vVA2^C_=EwKo(Y~N23-ziGzy}>}ZvG9uH_S z9EyXB5Nw+x4rDtkt>;2zx&Js&wA~jv@1|oa7>E;H2o_A(CXmkJ`I}*z28R`$b7!C8 zWEX-36SfJYvxwWi+I|xa@)QiqOKp2^Ef|qb>DuXs8b5jw&Hf@h@wS}gX-$?)9h*70 zj|aOJEX%d^%mj)yoqx38uFJ{UKU;FFo;aqz+I~n@hg0^&r1sOY9SwSwukNO? zlx&oqc;l$Yr%ISw@mN4F1yZ*PgrY++NdB?wDj|_o9!@%I_>gTe~DWM4f>J*4R literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/raw/adventure/progress-bar-green.png b/Source/Demos/Demo.Gui/Content/raw/adventure/progress-bar-green.png new file mode 100644 index 0000000000000000000000000000000000000000..a1aed79633ff580acc6f0f3fa1e545def30c4286 GIT binary patch literal 536 zcmV+z0_XjSP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^DS16z6k00D?eL_t(YOU;(eN&-q!bx#6-3a+ke~t!g6_h7phL?b5LyM16%>UKb_ZR;Si@=hsaRZc;o1=1W&y{_ aalQa$!0hPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^DS16z6k00D$aL_t(YOU;(eO2a@Dg|pXU=*A+&h4_!C zxDhqhjc5^}sAv%peKQ}y2XNs!jp9lWintKOQm}}E;3no9b8Abkx-b*Ga3IOdobQm# zPaLiM#oSTg-5FYF}#%KBSJu~uV9=3*6GaG^h6E+#*IMJu_ z+&da>HwM*#HU$$l8B7=^7Z0vi3+jL@1e*+IqBHBcY3`1zowE>Z6DZ2!aDmSx`?C?JPurzm_Qt|SxuBZ;MR?*ZoX*{vEM{};Jjd=UU&(C? zmT(j284u)Fqh2nWLr^nGLwLh5K_X@%j1;dd&Hta@1grg-ekvxH9Jn@wx0%3+a-0us W9c5C*!t`DM0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Demos/Demo.Gui/Content/small-font_0.png b/Source/Demos/Demo.Gui/Content/small-font_0.png new file mode 100644 index 0000000000000000000000000000000000000000..088d4f64c208a183002291e1dcbb952124776895 GIT binary patch literal 5636 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/Content/title-screen.json b/Source/Demos/Demo.Gui/Content/title-screen.json new file mode 100644 index 00000000..25149e6b --- /dev/null +++ b/Source/Demos/Demo.Gui/Content/title-screen.json @@ -0,0 +1,76 @@ +{ + "Skin": "Content/adventure-gui-skin.json", + "Controls": [ + { + "Type": "GuiPanel", + "Name": "MainPanel", + "Style": "brown-panel", + "Position": "400 240", + "Size": "700 380", + "Controls": [ + { + "Type": "GuiPanel", + "Style": "beige-inset-panel", + "Position": "350 190", + "Size": "680 360" + }, + { + "Name": "CloseButton", + "Type": "GuiButton", + "Style": "close-button", + "Position": "690 10" + }, + { + "Type": "GuiImage", + "Style": "monogame-title", + "Position": "350 100" + }, + { + "Name": "PlayButton", + "Type": "GuiButton", + "Style": "white-button", + "Position": "350 190", + "Text": "Play" + }, + { + "Name": "QuitButton", + "Type": "GuiButton", + "Style": "white-button", + "Position": "350 240", + "Text": "Quit" + }, + { + "Name": "EmailLabel", + "Style": "label", + "Type": "GuiLabel", + "Position": "350 315", + "Text": "email" + }, + { + "Name": "EmailTextBox", + "Type": "GuiTextBox", + "Style": "text-box", + "Position": "350 345", + "Size": "300 42", + "Text": "Let's put some really long text in the textbox to test the clipping area" + }, + { + "Name": "CheckBox", + "Type": "GuiCheckBox", + "Style": "checkbox", + "Position": "350 285", + "Size": "250 35", + "Text": "sign me up to all the things", + "TextColor": "#444444" + }, + { + "Name": "ProgressBar", + "Type": "GuiProgressBar", + "Style": "progress-bar", + "Position": "100 300", + "Progress": 0.5 + } + ] + } + ] +} diff --git a/Source/Demos/Demo.Gui/Demo.Gui.csproj b/Source/Demos/Demo.Gui/Demo.Gui.csproj new file mode 100644 index 00000000..51aca5af --- /dev/null +++ b/Source/Demos/Demo.Gui/Demo.Gui.csproj @@ -0,0 +1,160 @@ + + + + + Debug + AnyCPU + {62E83B48-D581-4E85-B7E7-9A87A811A99C} + WinExe + Properties + Demo.Gui + Demo.Gui + DesktopGL + v4.5 + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + false + 6 + + + true + bin\Release + prompt + 4 + false + false + + + Icon.ico + + + + + + + + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll + True + + + ..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll + True + + + + + + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + + + PreserveNewest + + + + + + PreserveNewest + + + + + + + + + + PreserveNewest + + + + + {8e425575-378a-4f83-88c9-f8bebad227c9} + MonoGame.Extended.Gui + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Gui/Game1.cs b/Source/Demos/Demo.Gui/Game1.cs new file mode 100644 index 00000000..818ddb55 --- /dev/null +++ b/Source/Demos/Demo.Gui/Game1.cs @@ -0,0 +1,106 @@ +using System; +using System.IO; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended; +using MonoGame.Extended.Gui; +using MonoGame.Extended.Gui.Controls; +using MonoGame.Extended.Gui.Serialization; +using MonoGame.Extended.ViewportAdapters; +using Newtonsoft.Json; + +namespace Demo.Gui +{ + public class Game1 : Game + { + // ReSharper disable once NotAccessedField.Local + private readonly GraphicsDeviceManager _graphicsDeviceManager; + private Camera2D _camera; + private GuiSystem _guiSystem; + private GuiProgressBar _progressBar; + private float _progressDelta = 0.2f; + + public Game1() + { + _graphicsDeviceManager = new GraphicsDeviceManager(this); + Content.RootDirectory = "Content"; + IsMouseVisible = false; + Window.AllowUserResizing = true; + } + + protected override void LoadContent() + { + var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480); + _camera = new Camera2D(viewportAdapter); + + var titleScreen = LoadScreen(@"Content/title-screen.json"); + var guiRenderer = new GuiSpriteBatchRenderer(GraphicsDevice, titleScreen.Skin.DefaultFont, _camera.GetViewMatrix); + _guiSystem = new GuiSystem(viewportAdapter, guiRenderer) { Screen = titleScreen }; + + var panel = titleScreen.FindControl("MainPanel"); + + var closeButton = titleScreen.FindControl("CloseButton"); + closeButton.Clicked += (sender, args) => { panel.IsVisible = false; }; + + var quitButton = titleScreen.FindControl("QuitButton"); + quitButton.Clicked += (sender, args) => Exit(); + + _progressBar = titleScreen.FindControl("ProgressBar"); + + } + + private GuiScreen LoadScreen(string name) + { + var skinService = new GuiSkinService(); + var serializer = new GuiJsonSerializer(Content) + { + Converters = + { + new GuiSkinJsonConverter(Content, skinService), + new GuiControlJsonConverter(skinService) + } + }; + + using (var stream = TitleContainer.OpenStream(name)) + using (var streamReader = new StreamReader(stream)) + using (var jsonReader = new JsonTextReader(streamReader)) + { + var screen = serializer.Deserialize(jsonReader); + return screen; + } + } + + protected override void UnloadContent() + { + } + + protected override void Update(GameTime gameTime) + { + var deltaTime = gameTime.GetElapsedSeconds(); + var keyboardState = Keyboard.GetState(); + + if (keyboardState.IsKeyDown(Keys.Escape)) + Exit(); + + _progressBar.Progress += deltaTime * _progressDelta; + + if (_progressBar.Progress >= 1.1f) + _progressDelta = -_progressDelta; + else if (_progressBar.Progress <= -0.1f) + _progressDelta = -_progressDelta; + + _guiSystem.Update(gameTime); + + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + base.Draw(gameTime); + + GraphicsDevice.Clear(Color.CornflowerBlue); + + _guiSystem.Draw(gameTime); + } + } +} diff --git a/Source/Demos/Demo.Gui/Icon.bmp b/Source/Demos/Demo.Gui/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 RJoIeLznU7AhJ`o~_y6Yy51#-4 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Gui/MonoGame.Framework.dll.config b/Source/Demos/Demo.Gui/MonoGame.Framework.dll.config new file mode 100644 index 00000000..09710ae4 --- /dev/null +++ b/Source/Demos/Demo.Gui/MonoGame.Framework.dll.config @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Source/Demos/Demo.Gui/OpenTK.dll.config b/Source/Demos/Demo.Gui/OpenTK.dll.config new file mode 100644 index 00000000..9342d688 --- /dev/null +++ b/Source/Demos/Demo.Gui/OpenTK.dll.config @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Gui/Program.cs b/Source/Demos/Demo.Gui/Program.cs new file mode 100644 index 00000000..2cece84f --- /dev/null +++ b/Source/Demos/Demo.Gui/Program.cs @@ -0,0 +1,16 @@ +using System; + +namespace Demo.Gui +{ + internal static class Program + { + [STAThread] + private static void Main(string[] args) + { + using (var game = new Game1()) + { + game.Run(); + } + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Gui/Properties/AssemblyInfo.cs b/Source/Demos/Demo.Gui/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..c970acdc --- /dev/null +++ b/Source/Demos/Demo.Gui/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. + +[assembly: AssemblyTitle("Demo.Gui")] +[assembly: AssemblyProduct("Demo.Gui")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. + +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM + +[assembly: Guid("9b7203c6-a9a6-40e9-a798-893df7f10bf1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] + +[assembly: AssemblyVersion("3.4.0.456")] +[assembly: AssemblyFileVersion("3.4.0.456")] \ No newline at end of file diff --git a/Source/Demos/Demo.Gui/app.config b/Source/Demos/Demo.Gui/app.config new file mode 100644 index 00000000..5c73fc53 --- /dev/null +++ b/Source/Demos/Demo.Gui/app.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Gui/app.manifest b/Source/Demos/Demo.Gui/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.Gui/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.Gui/packages.config b/Source/Demos/Demo.Gui/packages.config new file mode 100644 index 00000000..e6cd2b7c --- /dev/null +++ b/Source/Demos/Demo.Gui/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.InputListeners/Demo.InputListeners.csproj b/Source/Demos/Demo.InputListeners/Demo.InputListeners.csproj index c388e89d..6e0418e5 100644 --- a/Source/Demos/Demo.InputListeners/Demo.InputListeners.csproj +++ b/Source/Demos/Demo.InputListeners/Demo.InputListeners.csproj @@ -23,6 +23,7 @@ 4 false false + 6 true @@ -41,30 +42,65 @@ - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\MonoGame.Framework.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\NVorbis.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\OpenTK.dll + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll True - + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + @@ -76,6 +112,10 @@ + + {49c87598-994c-49b5-bbb3-7ffc342635d3} + MonoGame.Extended.Input + {41724c52-3d50-45bb-81eb-3c8a247eafd1} MonoGame.Extended diff --git a/Source/Demos/Demo.InputListeners/Game1.cs b/Source/Demos/Demo.InputListeners/Game1.cs index 59d841f4..7d754745 100644 --- a/Source/Demos/Demo.InputListeners/Game1.cs +++ b/Source/Demos/Demo.InputListeners/Game1.cs @@ -4,7 +4,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using MonoGame.Extended; using MonoGame.Extended.BitmapFonts; -using MonoGame.Extended.InputListeners; +using MonoGame.Extended.Input.InputListeners; using MonoGame.Extended.ViewportAdapters; namespace Demo.InputListeners @@ -17,7 +17,6 @@ namespace Demo.InputListeners private SpriteBatch _spriteBatch; private Texture2D _backgroundTexture; private BitmapFont _bitmapFont; - private InputListenerManager _inputManager; private string _typedString = string.Empty; private bool _isCursorVisible = true; private const float _cursorBlinkDelay = 0.5f; @@ -35,9 +34,10 @@ namespace Demo.InputListeners protected override void Initialize() { - _inputManager = new InputListenerManager(); - var mouseListener = _inputManager.AddListener(new MouseListenerSettings()); - var keyboardListener = _inputManager.AddListener(new KeyboardListenerSettings()); + var mouseListener = new MouseListener(new MouseListenerSettings()); + var keyboardListener = new KeyboardListener(new KeyboardListenerSettings()); + + Components.Add(new InputListenerComponent(this, mouseListener, keyboardListener)); keyboardListener.KeyPressed += (sender, args) => { @@ -112,8 +112,6 @@ namespace Demo.InputListeners _cursorBlinkDelta = _cursorBlinkDelay; } - _inputManager.Update(gameTime); - base.Update(gameTime); } @@ -129,10 +127,10 @@ namespace Demo.InputListeners } var textInputY = 14 * _bitmapFont.LineHeight - 2; - var position = new Vector2(4, textInputY); + var position = new Point(4, textInputY); var stringRectangle = _bitmapFont.GetStringRectangle(_typedString, position); - _spriteBatch.DrawString(_bitmapFont, _typedString, position, Color.White); + _spriteBatch.DrawString(_bitmapFont, _typedString, position.ToVector2(), Color.White); if (_isCursorVisible) _spriteBatch.DrawString(_bitmapFont, "_", new Vector2(stringRectangle.Width, textInputY), Color.White); diff --git a/Source/Demos/Demo.InputListeners/Icon.bmp b/Source/Demos/Demo.InputListeners/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 + + + + + + + + diff --git a/Source/Demos/Demo.InputListeners/app.manifest b/Source/Demos/Demo.InputListeners/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.InputListeners/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.InputListeners/packages.config b/Source/Demos/Demo.InputListeners/packages.config index a5caee24..9b38dcf7 100644 --- a/Source/Demos/Demo.InputListeners/packages.config +++ b/Source/Demos/Demo.InputListeners/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Source/Demos/Demo.NuclexGui/Content/Content.mgcb b/Source/Demos/Demo.NuclexGui/Content/Content.mgcb new file mode 100644 index 00000000..6292aca7 --- /dev/null +++ b/Source/Demos/Demo.NuclexGui/Content/Content.mgcb @@ -0,0 +1,52 @@ + +#----------------------------- Global Properties ----------------------------# + +/outputDir:bin/$(Platform) +/intermediateDir:obj/$(Platform) +/platform:Windows +/config: +/profile:Reach +/compress:False + +#-------------------------------- References --------------------------------# + +/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll + +#---------------------------------- Content ---------------------------------# + +#begin logo-square-128.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:logo-square-128.png + +#begin DefaultFont.spritefont +/importer:FontDescriptionImporter +/processor:FontDescriptionProcessor +/processorParam:TextureFormat=Compressed +/build:DefaultFont.spritefont + +#begin SuaveSheet.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:SuaveSheet.png + +#begin TitleFont.spritefont +/importer:FontDescriptionImporter +/processor:FontDescriptionProcessor +/processorParam:TextureFormat=Compressed +/build:TitleFont.spritefont + diff --git a/Source/Demos/Demo.NuclexGui/Content/DefaultFont.spritefont b/Source/Demos/Demo.NuclexGui/Content/DefaultFont.spritefont new file mode 100644 index 00000000..df6b506a --- /dev/null +++ b/Source/Demos/Demo.NuclexGui/Content/DefaultFont.spritefont @@ -0,0 +1,60 @@ + + + + + + + Corbel + + + 12 + + + 0 + + + true + + + + + + ? + + + + + + ~ + + + + diff --git a/Source/Demos/Demo.NuclexGui/Content/SuaveSheet.png b/Source/Demos/Demo.NuclexGui/Content/SuaveSheet.png new file mode 100644 index 0000000000000000000000000000000000000000..efe8b6c7598aa9a7a4ca7ef11bad6d811adfe324 GIT binary patch literal 6749 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 + + + + + + Corbel + + + 14 + + + 0 + + + true + + + + + + ? + + + + + + ~ + + + + diff --git a/Source/Demos/Demo.NuclexGui/Content/logo-square-128.png b/Source/Demos/Demo.NuclexGui/Content/logo-square-128.png new file mode 100644 index 0000000000000000000000000000000000000000..1dbe3e85cf58f08270faf30af047db9917cca3c4 GIT binary patch literal 3513 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.NuclexGui/Demo.NuclexGui.csproj b/Source/Demos/Demo.NuclexGui/Demo.NuclexGui.csproj new file mode 100644 index 00000000..a8eaddbb --- /dev/null +++ b/Source/Demos/Demo.NuclexGui/Demo.NuclexGui.csproj @@ -0,0 +1,137 @@ + + + + + Debug + AnyCPU + {8003BA78-CB44-46B5-85A2-2A6440C3EFDC} + WinExe + Properties + Demo.NuclexGui + Demo.NuclexGui + DesktopGL + v4.5 + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + false + 6 + + + true + bin\Release + prompt + 4 + false + false + + + Icon.ico + + + + + + + + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll + True + + + + + + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + + + + + + + + + + + + PreserveNewest + + + + + {49c87598-994c-49b5-bbb3-7ffc342635d3} + MonoGame.Extended.Input + + + {d8bc4f21-e71d-46ce-b6d3-259f1e0dfaba} + MonoGame.Extended.NuclexGui + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.NuclexGui/Game1.cs b/Source/Demos/Demo.NuclexGui/Game1.cs new file mode 100644 index 00000000..2742fa85 --- /dev/null +++ b/Source/Demos/Demo.NuclexGui/Game1.cs @@ -0,0 +1,222 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended; +using MonoGame.Extended.Input.InputListeners; +using MonoGame.Extended.Sprites; +using MonoGame.Extended.ViewportAdapters; +using MonoGame.Extended.NuclexGui; +using MonoGame.Extended.NuclexGui.Controls.Desktop; + +namespace Demo.NuclexGui +{ + public class Game1 : Game + { + // ReSharper disable once NotAccessedField.Local + private readonly GraphicsDeviceManager _graphicsDeviceManager; + private SpriteBatch _spriteBatch; + private Sprite _sprite; + private Camera2D _camera; + + private readonly InputListenerComponent _inputManager; + private readonly GuiManager _gui; + private int _rotateDirection = 1; + private Color _backgroundColor; + + public Game1() + { + _graphicsDeviceManager = new GraphicsDeviceManager(this); + Content.RootDirectory = "Content"; + IsMouseVisible = true; + Window.AllowUserResizing = true; + _backgroundColor = Color.Black; + + // First, we create an input manager. + _inputManager = new InputListenerComponent(this); + + // Then, we create GUI. + var guiInputService = new GuiInputService(_inputManager); + _gui = new GuiManager(Services, guiInputService); + } + + protected override void Initialize() + { + base.Initialize(); + + // Create a GUI screen and attach it as a default to GuiManager. + // That screen will also act as a root parent for every other control that we create. + _gui.Screen = new GuiScreen(800, 480); + _gui.Screen.Desktop.Bounds = new UniRectangle(new UniScalar(0f, 0), new UniScalar(0f, 0), new UniScalar(1f, 0), new UniScalar(1f, 0)); + + // Perform second-stage initialization + _gui.Initialize(); + + // Create few controls. + var button = new GuiButtonControl + { + Name = "button", + Bounds = new UniRectangle(new UniScalar(0.0f, 20), new UniScalar(0.0f, 20), new UniScalar(0f, 120), new UniScalar(0f, 50)), + Text = "Rotate logo" + }; + var button2 = new GuiButtonControl + { + Name = "button2", + Bounds = new UniRectangle(new UniScalar(20), new UniScalar(80), new UniScalar(120), new UniScalar(50)), + Text = "Open Window" + }; + + // Attach relevant events + button.Pressed += Button_Pressed; + button2.Pressed += Button2_Pressed; + + // And finally, attach controls to the parent control. In this case, desktop screen. + _gui.Screen.Desktop.Children.Add(button); + _gui.Screen.Desktop.Children.Add(button2); + } + + private void Button2_Pressed(object sender, System.EventArgs e) + { + var window = new GuiWindowControl + { + Name = "window", + Bounds = new UniRectangle(new UniVector(new UniScalar(0.5f, -100), new UniScalar(0.5f, -60)), new UniVector(new UniScalar(200), new UniScalar(120))), + Title = "Color picker", + EnableDragging = true + }; + + var choice1 = new GuiChoiceControl + { + Name = "choiceBlack", + Bounds = new UniRectangle(new UniScalar(0.0f, 10), new UniScalar(0.0f, 30), new UniScalar(10), new UniScalar(10)), + Text = "Black", + Selected = true + }; + var choice2 = new GuiChoiceControl + { + Name = "choiceGray", + Bounds = new UniRectangle(new UniScalar(0.0f, 10), new UniScalar(0.0f, 45), new UniScalar(10), new UniScalar(10)), + Text = "Gray", + Selected = false + }; + var choice3 = new GuiChoiceControl + { + Name = "choiceWhite", + Bounds = new UniRectangle(new UniScalar(0.0f, 10), new UniScalar(0.0f, 60), new UniScalar(10), new UniScalar(10)), + Text = "White", + Selected = false + }; + var button1 = new GuiButtonControl + { + Name = "confirm", + Bounds = new UniRectangle(new UniScalar(0.0f, 10), new UniScalar(1.0f, -40), new UniScalar(0f, 80), new UniScalar(0f, 30)), + Text = "Confirm" + }; + var button2 = new GuiButtonControl + { + Name = "cancel", + Bounds = new UniRectangle(new UniScalar(1.0f, -90), new UniScalar(1.0f, -40), new UniScalar(0f, 80), new UniScalar(0f, 30)), + Text = "Cancel" + }; + + button1.Pressed += DialogueConfirm_Pressed; + button2.Pressed += DialogueCancel_Pressed; + + window.Children.Add(choice1); + window.Children.Add(choice2); + window.Children.Add(choice3); + window.Children.Add(button1); + window.Children.Add(button2); + + _gui.Screen.Desktop.Children.Add(window); + } + + private void DialogueCancel_Pressed(object sender, System.EventArgs e) + { + _gui.Screen.Desktop.Children.Remove(((GuiButtonControl)sender).Parent); + } + + private void DialogueConfirm_Pressed(object sender, System.EventArgs e) + { + foreach (var control in ((GuiButtonControl)sender).Parent.Children) + { + if (control.GetType() == typeof(GuiChoiceControl)) + { + var radiobutton = (GuiChoiceControl)control; + + if (radiobutton.Selected) + switch (radiobutton.Name) + { + case "choiceGray": + _backgroundColor = Color.Gray; + break; + + case "choiceWhite": + _backgroundColor = Color.White; + break; + + default: + _backgroundColor = Color.Black; + break; + } + } + } + + _gui.Screen.Desktop.Children.Remove(((GuiButtonControl)sender).Parent); + } + + private void Button_Pressed(object sender, System.EventArgs e) + { + _rotateDirection *= -1; + } + + protected override void LoadContent() + { + _spriteBatch = new SpriteBatch(GraphicsDevice); + + var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480); + _camera = new Camera2D(viewportAdapter); + + var logoTexture = Content.Load("logo-square-128"); + _sprite = new Sprite(logoTexture) + { + Position = viewportAdapter.Center.ToVector2() + }; + } + + protected override void UnloadContent() + { + } + + protected override void Update(GameTime gameTime) + { + var deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds; + var keyboardState = Keyboard.GetState(); + + if (keyboardState.IsKeyDown(Keys.Escape)) + Exit(); + + // Update both InputManager (which updates states of each device) and GUI + _inputManager.Update(gameTime); + _gui.Update(gameTime); + + _sprite.Rotation += deltaTime * _rotateDirection; + + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + GraphicsDevice.Clear(_backgroundColor); + + _spriteBatch.Begin(blendState: BlendState.AlphaBlend, transformMatrix: _camera.GetViewMatrix()); + + _spriteBatch.Draw(_sprite); + _spriteBatch.End(); + + // Draw GUI on top of everything + _gui.Draw(gameTime); + + base.Draw(gameTime); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.NuclexGui/Icon.bmp b/Source/Demos/Demo.NuclexGui/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 RJoIeLznU7AhJ`o~_y6Yy51#-4 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.NuclexGui/MonoGame.Framework.dll.config b/Source/Demos/Demo.NuclexGui/MonoGame.Framework.dll.config new file mode 100644 index 00000000..09710ae4 --- /dev/null +++ b/Source/Demos/Demo.NuclexGui/MonoGame.Framework.dll.config @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Source/Demos/Demo.NuclexGui/OpenTK.dll.config b/Source/Demos/Demo.NuclexGui/OpenTK.dll.config new file mode 100644 index 00000000..9342d688 --- /dev/null +++ b/Source/Demos/Demo.NuclexGui/OpenTK.dll.config @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.NuclexGui/Program.cs b/Source/Demos/Demo.NuclexGui/Program.cs new file mode 100644 index 00000000..a10075c3 --- /dev/null +++ b/Source/Demos/Demo.NuclexGui/Program.cs @@ -0,0 +1,16 @@ +using System; + +namespace Demo.NuclexGui +{ + internal static class Program + { + [STAThread] + private static void Main(string[] args) + { + using (var game = new Game1()) + { + game.Run(); + } + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.NuclexGui/Properties/AssemblyInfo.cs b/Source/Demos/Demo.NuclexGui/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..aaf807fd --- /dev/null +++ b/Source/Demos/Demo.NuclexGui/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. + +[assembly: AssemblyTitle("Demo.NuclexGui")] +[assembly: AssemblyProduct("Demo.NuclexGui")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. + +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM + +[assembly: Guid("9b7203c6-a9a6-40e9-a798-893df7f10bf1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] + +[assembly: AssemblyVersion("3.4.0.456")] +[assembly: AssemblyFileVersion("3.4.0.456")] \ No newline at end of file diff --git a/Source/Demos/Demo.NuclexGui/app.config b/Source/Demos/Demo.NuclexGui/app.config new file mode 100644 index 00000000..5c73fc53 --- /dev/null +++ b/Source/Demos/Demo.NuclexGui/app.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.NuclexGui/app.manifest b/Source/Demos/Demo.NuclexGui/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.NuclexGui/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.NuclexGui/packages.config b/Source/Demos/Demo.NuclexGui/packages.config new file mode 100644 index 00000000..9b38dcf7 --- /dev/null +++ b/Source/Demos/Demo.NuclexGui/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Particles/Content/Content.mgcb b/Source/Demos/Demo.Particles/Content/Content.mgcb index 67baf7f1..16110b8e 100644 --- a/Source/Demos/Demo.Particles/Content/Content.mgcb +++ b/Source/Demos/Demo.Particles/Content/Content.mgcb @@ -3,7 +3,7 @@ /outputDir:bin/$(Platform) /intermediateDir:obj/$(Platform) -/platform:Windows +/platform:DesktopGL /config: /profile:Reach /compress:False diff --git a/Source/Demos/Demo.Particles/Demo.Particles.csproj b/Source/Demos/Demo.Particles/Demo.Particles.csproj index 5ac51eb0..e28b4f24 100644 --- a/Source/Demos/Demo.Particles/Demo.Particles.csproj +++ b/Source/Demos/Demo.Particles/Demo.Particles.csproj @@ -23,6 +23,7 @@ 4 false false + 6 true @@ -41,27 +42,62 @@ - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\MonoGame.Framework.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\NVorbis.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\OpenTK.dll + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll True - + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + @@ -73,6 +109,10 @@ + + {6c8b9e29-d09b-4901-80fd-45aaa35882c6} + MonoGame.Extended.Particles + {41724c52-3d50-45bb-81eb-3c8a247eafd1} MonoGame.Extended diff --git a/Source/Demos/Demo.Particles/Game1.cs b/Source/Demos/Demo.Particles/Game1.cs index 0db62422..d098e9de 100644 --- a/Source/Demos/Demo.Particles/Game1.cs +++ b/Source/Demos/Demo.Particles/Game1.cs @@ -6,6 +6,7 @@ using MonoGame.Extended; using MonoGame.Extended.Particles; using MonoGame.Extended.Particles.Modifiers; using MonoGame.Extended.Particles.Modifiers.Containers; +using MonoGame.Extended.Particles.Modifiers.Interpolators; using MonoGame.Extended.Particles.Profiles; using MonoGame.Extended.Sprites; using MonoGame.Extended.TextureAtlases; @@ -28,6 +29,7 @@ namespace Demo.Particles Content.RootDirectory = "Content"; IsMouseVisible = true; Window.AllowUserResizing = true; + Window.Position = Point.Zero; } protected override void LoadContent() @@ -67,7 +69,7 @@ namespace Demo.Particles _particleEffect.Update(deltaTime); - if(mouseState.LeftButton == ButtonState.Pressed) + if (mouseState.LeftButton == ButtonState.Pressed) _particleEffect.Trigger(new Vector2(p.X, p.Y)); _particleEffect.Trigger(new Vector2(400, 240)); @@ -78,7 +80,7 @@ namespace Demo.Particles protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Black); - + _spriteBatch.Begin(blendState: BlendState.AlphaBlend, transformMatrix: _camera.GetViewMatrix()); _spriteBatch.Draw(_particleEffect); _spriteBatch.Draw(_sprite); @@ -93,22 +95,27 @@ namespace Demo.Particles { Emitters = new[] { - new ParticleEmitter(500, TimeSpan.FromSeconds(2.5), Profile.Ring(150f, Profile.CircleRadiation.In)) + new ParticleEmitter(textureRegion, 500, TimeSpan.FromSeconds(2.5), Profile.Ring(150f, Profile.CircleRadiation.In)) { - TextureRegion = textureRegion, Parameters = new ParticleReleaseParameters { - Speed = new RangeF(50, 0f), + Speed = new Range(0f, 50f), Quantity = 3, - Rotation = new RangeF(-1f, 1f), - Scale = new RangeF(3.0f, 4.0f) + Rotation = new Range(-1f, 1f), + Scale = new Range(3.0f, 4.0f) }, Modifiers = new IModifier[] { - new ColorInterpolator2 { InitialColor = new HslColor(0.33f, 0.5f, 0.5f), FinalColor = new HslColor(0.5f, 0.9f, 1.0f) }, + new AgeModifier + { + Interpolators = new IInterpolator[] + { + new ColorInterpolator { InitialColor = new HslColor(0.33f, 0.5f, 0.5f), FinalColor = new HslColor(0.5f, 0.9f, 1.0f) } + } + }, new RotationModifier { RotationRate = -2.1f }, new RectangleContainerModifier { Width = 800, Height = 480 }, - new LinearGravityModifier { Direction = Axis.Up, Strength = 30f } + new LinearGravityModifier { Direction = -Vector2.UnitY, Strength = 30f } } } } diff --git a/Source/Demos/Demo.Particles/Icon.bmp b/Source/Demos/Demo.Particles/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 zcmeI5U#w--UB}l@N{bdGr9PBcCDGJ$nrI`=WH|TUUY#_NDiB0LqCT{g1`;L3KcJoR zB$bk?iHSS_+EQP9@eOEV)mmCZn@Z7_(T?-rw9}b;?{o%38)$^4jK5EtQ;%oXIrpry z_dfUcTkAXFaPC=W?{(JteZQZz*4}&VwGZF$(R6X*-$(6rKY#4|-fLgFI=zO^_WhMV zn7;e^?#J)_?|e$%|1TZ>g`0nG;=6_ZylA1V+Surdw0YuCTHCoTt#2Pm>pPF8(e{&R zbo%pYee0N|owd&|q_xxM?Qgx}#Q^Ql5G~OZZP6I5(H!mZKpSpvyOwWCo2PF~qn(eK z51uk#oHQSZ>3B>Jq1o5c+BTlR8+Zh-v`tI=+Fzayp1V1%ZPDJ-{tw|BoxR(1d)k=)wvF|~XT5x`Qd_))r|=dYtDmGeHKc96)7t2NHf>%_ z>tf#Guu3*s`z<_%*X~LqjSKd$nHZ&wGmqOb+e`Ahc;6!r;Jr`S3oq^=3eEiV#cA{W zuh}^4**(&`wZ2aEU3@HsC-Ej8Z3f5{RrHdy|0v_FuZVl~_0BzjNAW72T@fDD{tRvD z9cg1n*XkDUhty~Lh!vj2yBZHH*F4=|*ItfWJ1Rf>@UwJSP6s@UmzSfUy}jOUvHFzr zF`ighj)j)vhNtm%dqgi*@oD}`&Jf2KZPV;)`K$$9`bYMn2@ zIt!n+`TDK2>8hv3FUxoUMrvD=17VdzN3+J-mCWz52_t z{<6k+!QiUb4`9ub=QO`Z?5pp0;Q?4&#v?y@n2+Td<& zu;Qoq?WG4`cp3gVcKC|g{gCbcUiwYH?W?^zvE(`dy0_Ptj^avsEbD<~?h$@geZTsC zd7ugpz;ekk0P74d+t$>u-#Lrd({}FUQG4BIf4|pWx7h35X>IH0?3}7zeq(?}XoY6? z+H)w-5G~QP25&A~hmy6!KW;Hx_ID!g$Guamr*@CMembq4*_YD!lJ-*D`i}sbqAePu zb!+#q!t^34U7ik}d#RDO^0dv9K9bgV-jX&>EfO1TQ%?lY9PRNy#6GLE%rFhxyD4~Q z1AYHjEf!oC>2hs!w>awi7!kk&cmYq8G8Jum*xpT*&s7|Um#uExA9-mybaJ;i==-)J zfG6+<9*M^FqUD9{d8%HOMrUh1E@F+ex2AQC^XC~r-z7X!>)MvE4db(9zPr-4?_sO= zkn5t%il@?JMgXtinMM26NZY~qELFHp5~(h`mGwKO;rs11tG-HC1m;Bm@8F@`d=}|@ z7|+%DG8-4vw7$MW8eScrHTUIID~>Po1wwn>o;Nq0jw&XyQ1gtESpt5h#fO-kZf%gml=yE%0@J?q|~4 z9VL#{wtYt6M}w~;1p6Nhd@l1dn(Nc2ot4)T5x|2H`ubcMVW0I8bKgZsV=cEOB-1X6 zKyMNFoxsNcu>WM>a~SVPqwmjQ>P=8(qzDv501rm!D|2Oh!rHE9?B1r_ciz*Uw_}%! zv`%k^1=SGpk@E8=KBp{XXUv>1n^>xFYjrve>Ujx|6}5R38!k8 zAtHbmy|bPxAMC#nbnY+Dm3`uRyZZl9n`--kB7hgYvtC>I zc*fg6aw=OzpeO=*R`%-0KRoBLNF;5n2n-YfyjWZR>b*WZgLfb~m8~LB6al>GotN6m zC;p2ps*MMXfcRhi_+R`FXlP|!6an!s{)-HwjjM`)_!s{}8Jc@cxlXH>-x$0Y_#T?5 z=LK3B|6iRpb#5u>{FW)WIbSHP4PS`=Hgp!x(mCe=@h@NGe4(^9 zd?EhZ&{;f7=bQ(`zkHGNh0@yah4^nnXYnkZa~=@?@2A# zEUJnQ7=Z|^=gKJl2Q-DUZYBabwj!j7|7I+ziVhfo2(0JIDE2A# zEUJnQ7=Z|^=gKJl2Q-DUZYBabwj!j7|7I+ziVhfo2(0JIDE2A# zEUJnQ7=Z|^=gKJl2Q-DUZYBabwj!j7|7I+ziVhfo2(0JIDE2A# zEUJnQ7=Z|^=gKJl2Q-DUZYBabwj!jp!v7o7p_6}}*0&Sa{X{x+CZax+IRfjs zGPc71)oF7(SN{lUl)VN1@nQr$YAU1n_rETz`1h|-)HXr<`}dak_pg!o_dP<@_}{la zluqOS)wgr%|5qRL(!N6dzkiKNHTAN+`1kKE@$X+FFFco)L;U;qmiYItQ7Ly`wio~Y zy(RwrYvhIJ(sGD@|K1Y+{xvG)&dc`V-@muSzkiLq@LXCB@$cVT;@`hUrQCVhUi|y_ zmiYItkr$pz%OU>#drSQL*Qk^`FWZZM|K1Y+{x$N#b7?umzkhFufBzbla_41x@$cVT z;@`hUUU)7ohxqsJE%EPPqf+j?Y%l)(drSQL*T@UcrR5O+{=Fss{cBXpotN#!zkhFu zfBzbJ;kmRN;@`iw#J_)yO1bm0z4-U9<<86Y;@`iw#J_)yyzpFF4)O2bTjJlpMy1?&*Er|77UyC45_Y=T>QKylhX| zyGOu(4tUW^%v&kPEopt*zcad*@IbmYthWxPjV3g@HLY#8!kw3T-fl7PPM7~2em;%D zdh2i_{NqJ0T$GmMg|v3MbRQ4f-`7b0AGvR#?EYKW?j^*F9+)UC1MHs-+P^&3h_^l% zxNkX<)_1zoT+s0uUi`NP_{W2Iv6MXz+r$17X+7-u<#(jfDc|&VE8QE@p_8ws z^^oUh@Hb_r4&9>Qdv84Gf#qe&0Q-*y?qBY)^B2C|(XDhh1!jNj$6u~oBRn{+YqWRR zk9>aVGsZ_Z!hG-jvA|=qF$<4Z&OaU;*EQNZ?B5pj*o9a#zI;pCsPY)#QX4maGqAVD zEKmpP;=83?u5@@W^6?q$A4+RGW33{-f5`gC<<#@N*RKcHWztK(kw#UH)9~J8J)`{% z`&XpR6Vb{&S>7%4)+K5GQQtI|m+slX-$a*{4$tN4871wj6K(QSfzM$QZ`!X~jxqPy_2e%G*CWTk zznD(ct&B3CTjRCpeJ0G0qx)b5{mlat?b*0q5#QezbS_zr`RTMf(nb~Yf$`dO-J*T| zYd?FPkQBP3xhr1zed9oH|#5w`Q?G-Kb;4c6nT8Jcie1)iFvs%#Z7YCQ-^g zubj-4eOKkjuJ-l?hIC-yKtE3S9j_tW~+@R{>AUakwUUc~*CjVHT$ z1jdL7v6-hn1P8(nU`wHe-O~$p) zzljYon&r<`q~noVuJKK41KTh@FOE+KzZYP-&Xb>+xA8~zTJ>Dvi__-$57@m{HQdiT z8P6g9CPu`Hn9cKP-{0X0yivp4o>{uU_HJ>z)5c-5_OB)Vgw1{C{*9sU8)Q7oJ=XtT zahp1nCx{ub8~T_458wqnF;rc=OyO%N#S&may&m*=*^^c^@uk99> zlJ9@m#<3h{9XDSMS^gICCWge4n3ia;+qP(q_IRL$IKnh+?-m!n|5#(ks2mr4+S-5C za{DRs#4__!Ic}sMdBS4X(p;WZu|rIWEiqo^JPw+oEgGYBt>?LB=>gM=u+KKk%b1l< z3+dda!m$$TBi?JzuzHWZe%0c4qs4{m!F>K*`}`O7`bYC)^mQO2YD&zBJsO||nxG9D zp%tIe4h_)~O(WK`uQHd;wc>v5zJ6QzD3PoUQ_J-#eSLR zFmnB+g>$0vt3SU=lm0Y;;bpI-a;`;M^rwYlsaUSs128-u)0e(;Z8Z8iXRD64eou^h z@c`_0o#XOeod?u;PZGb$mCmw*kWx4HZzt^N&&a)0v&26me)^7jmReP9&y}mf^lFtvNcm224xE3Q` zS*fjDum*EonC*MtA4}J6ZR>pCo{R%)^SA0VyDxz;SnHeLKJvT9u0gi^JX`s8wr>@i z?y-R_80&-8q4GFn&u-FlZM$nNUKGPg55N>`4aIGr`5v}=kJSdqzmxve-^=>}mSCz+ zMu*NzZNTz+uZk7sjO$(w-#SHPf84e(UeWmgpZ_i#! zkC~r-=X`~(3oNerD){)O`D$`J$={@{;I?<@b^eE=(7ukp=de7AJwD`=kJ?%EH@2lt6xl}2Z0X~lPJGh`W* z_x$+6h_|^tv;0z;&U{7PFEC&Kq4@Y4^VJWeYcA;br!{07wjHV*%6GQ@u;FD+@3b%a z{LDQ|x_5ZC5Bg-}WsCK1FR>o%Z`nTV+hkVo1OjrHL z<1sz^p?7`oJlTX;-k&0ajVW&QQ_7R$bMB2V&GAAVsUUK$g;zN)o4 z`}V<5`LS;C0~QyaUr-uPZNI)vfAX-sE>8!~4W$uz^BWqkE!PI%Z9G2o8r?(bzlwZ$ zcFCtKMq+yL7(8q7>T;Z4sw=<6Z%U)ZV}PfJdM;0?ei63k`Gv=I9cnIPJm38{?HF=j zN-JLnhTr73DTCU9+3f%x?)zDs5%}$+j6A>ic02bZkNtmtowL5=4=gU1rb8$Dh;x@b zCxY z#+Eh0qj(k1_8sHa^P?@j)jZbPvFA}c=XOWh*m-^0JmK8~l##Mh=9bz4Jc&2e->=4@ zqqK46<93bvrAo)0%)R?t^V7T1`p#Y)-*;7!GE;WyQ0qKGyoU$zV%K-@P`pZRZ^?Om557=4|)Ghj$0FU7{JU8UE*43*N{};J` z?QYZNY4cf>c?9_B3--Ft%KhVMRDC}}9q+YkJJdN!dySXy6yCyP@kyz_2A7#mH<`yC zG0k``x~G1Jb3~8Z>ozObmFd8#`qjwSkh&8CVnIwiX@qC+4j#fw`5GuSN(2~#-k3%^ z585^Br_5`sx~9lFF8^TXga5?5#9CW#P8(m360=p8lh_a=VnxhWwQdw%z!M)aZ{U%d zj=ff`VWi)?!p>E*z8Zbd5j$7)sQKVY*S + + + + + + + + diff --git a/Source/Demos/Demo.Particles/app.manifest b/Source/Demos/Demo.Particles/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.Particles/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.Particles/packages.config b/Source/Demos/Demo.Particles/packages.config index a5caee24..9b38dcf7 100644 --- a/Source/Demos/Demo.Particles/packages.config +++ b/Source/Demos/Demo.Particles/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Content/Content.mgcb b/Source/Demos/Demo.Platformer/Content/Content.mgcb new file mode 100644 index 00000000..cc8aa00d --- /dev/null +++ b/Source/Demos/Demo.Platformer/Content/Content.mgcb @@ -0,0 +1,70 @@ + +#----------------------------- Global Properties ----------------------------# + +/outputDir:bin/$(Platform) +/intermediateDir:obj/$(Platform) +/platform:Windows +/config: +/profile:Reach +/compress:False + +#-------------------------------- References --------------------------------# + +/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll +/reference:../../../MonoGame.Extended.Content.Pipeline.Tiled/bin/MonoGame.Extended.Content.Pipeline.Tiled.dll + +#---------------------------------- Content ---------------------------------# + +#begin logo-square-128.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:logo-square-128.png + +#begin level-1.tmx +/importer:TiledMapImporter +/processor:TiledMapProcessor +/build:level-1.tmx + +#begin tiny-characters.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:tiny-characters.png + +#begin tiny-tiles.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:tiny-tiles.png + +#begin tiny-grey-cloud.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:tiny-grey-cloud.png + diff --git a/Source/Demos/Demo.Platformer/Content/level-1.tmx b/Source/Demos/Demo.Platformer/Content/level-1.tmx new file mode 100644 index 00000000..6e5ef0e3 --- /dev/null +++ b/Source/Demos/Demo.Platformer/Content/level-1.tmx @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + gQEAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAuAAAALwAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAAC0AAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAACBAQAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACsAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAArAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAAgQEAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAAIEBAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAAC4AAAAvAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAAIEBAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAA + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlAAAAYgAAAGMAAABkAAAAAAAAAAAAAAAAAAAAAAAAAGUAAABjAAAAYwAAAGMAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAFgAAABaAAAAcQAAAAAAAAAAAAAAAAAAAAAAAABhAAAAWAAAAFgAAABYAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAGMAAABiAAAAYwAAAGMAAABiAAAAYwAAAGcAAABaAAAAWAAAAHEAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAFgAAABYAAAAWQAAAGYAAABjAAAAYwAAAGIAAABjAAAAYwAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABaAAAAWAAAAFgAAABxAAAAAAAAAAAAAAAAAAAAAAAAAGEAAABYAAAAWAAAAFoAAABYAAAAWAAAAFgAAABYAAAAWAAAAFoAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFkAAABYAAAAZgAAAGMAAABjAAAAYgAAAGMAAABnAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABaAAAAWAAAAFoAAABZAAAAWAAAAFgAAABYAAAAWQAAAFgAAABYAAAAWQAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFoAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABaAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWgAAAFgAAABYAAAAWAAAAFgAAABZAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAA + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + + + + + + + + + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAMgAAADIAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + diff --git a/Source/Demos/Demo.Platformer/Content/logo-square-128.png b/Source/Demos/Demo.Platformer/Content/logo-square-128.png new file mode 100644 index 0000000000000000000000000000000000000000..1dbe3e85cf58f08270faf30af047db9917cca3c4 GIT binary patch literal 3513 zcmV;q4My^bP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGr761Sj76F)IRX_j$02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;js(W8VM(4Jt`QK~#8N?VWp&9Yqy~J47QY2;m`?q5=j{ zC^3%h|epb+4R?_GY7vyBd73jW&C$W$S~Cj9Ki&sVZX+2s$t9?!}JSSffpmu%)q9NZy( zp2XgiSoB*~#MzMqsw@pXswdiqy-Tla1`onCuEq4WHl*Jc@Ls8Aj%V*mBsxR1SuQ)> zb~fUr^jy3&O=52+R^N`v%8xF^0^cm8*Iwx7&NnxrZ}zTmt&1-Aa4|ZAck6<)WkTc4 zT2J&kcD%WI&6_blzZKIc75K#DnUAs8ZP1)(e=JnG3m2R#Dcbx8KWB0d8WlwJ7-!>- zzBn{2#9+wp##a9r3L1h|%!( z_~$&ae6yq>5l7Xzj%#-U(KDo+fTP-MkDKtv7rosxzYz|0bOdkc@}=Ix<#yz1WTu)sI32GiMahj{QgG# z{Aav>70~cl{QMn6=Ogb?{@{_y8#qGw{m0_=S;{jW?sIp;amBD*?ik~n1!H#1mwE@w zn(7@mggqEv^{(Y-<0Y)Ty>&DU<4yDj5_jqL`;Sz9^dmgB*gl8abg>7luHhFIdWKO8 zV-UWUt*2Am>ln^OsCSQ?e&N6d<%J(+57VoMx}g==CqcuX*)l5_JXPG$J|oCwXfb&Q z&1Rw(9lp6|m$chMeBWfDgC>o1qMk~UjXVgVx3OiEhI!&nR)G;b>(60}c0|LeG_>!r zRhxdidhW^I*ik&%NU&uc_$FIKX>*^vlTF}Kwq{qs@Bx_iI@xB9Xmcmp&8IV_hCsAw z6^PpY}mVQk&L=$_0scQn|w3T%lx!{Q%j z$U9hLv#PCl4QDMs74kF2&}BMr>HfFo9@I3VSq1QAaicA0cvca*rvE^!nEc1?X?WcF z?|w7IBY*@SY~h*D(3$g7aibl!tJ+}xXaDo^fu5-)KkT8yG0)IB$}{f}eXvI4QveLh z8?Eq5&Pp-zqZ0)m?Bbcj*;+C3;ZLF;R)9rxnV|_AgpC#m%-1;^#i(!X6tw$vgCDlg z=25m(oILn}=!+e0$18xzuLaOEALMKlr(BzgVJTZFPTG7{_Qe7;Ee{&VZ!jb^aTYCY zZWev90`#(#;zT2TL|-hR&13WvK+UuA4p}Mk2Jm@l_=)I?4Fb4|trRDEe=qrB1A6}> zZm`9?!Gky(#Yu6s!9idHowMC8ueNnwAhm5iygLN`XAw{DMlKu z68x|PEXy|lI+6N>+2?Wfb0wHFH9#Ildf$R$5ZT#lDwlMJvYUd?^Z-Jo%oRNd;l8ODsSoD zY;hM!J3Crssp`5u-OzEGUx?=Qm(#NZY*KT=X>4(f!~+}|z{_~TsbgrSv^)pr67<+g zQ`a?>bdVz}x5tth7abFu8UUlqBeMGf1A)$w29UWk`8v*U$B-{Fzo# zVvcG-_ZXgeHP>iLNeMctgEr499leWdvjs_sI;ulJ)4gVql>`X!Cup#SD@Xc9b6t ztK)T)GD}L_QEs&PYt#1(sU;b3lox7Eq_G0lBpGp(7Y(1_nzJOyh@-63xYjI6HsmNB z5VhRra9oMT9OVMm#fy98BGI5F>Pykny1*Sk0X=w{5qB)nOtvla!dh>-&;@O;=lI*sB<8RBMM$?s}IUB&30CXqU6`S_$NWKxDUqhVpPw}*cC6)^#ObhD*$D4vu7 z@|~2SJS?7gu!s+52nX6^bL)c^EUPv=4bO}MCS@oU5Z~)G)%T+Pu~4294z$T)w$?s% z7c?nDIk`>sMEh__2-4<0;UK$sa4B0WUbV28Ng2w`UFw?t1Gz-TNW(ng0L#D#R>H^G zVsWCe^2JQbP<}N0QNAe;22T|aunq=+Z!SZNc4pR`NWM7}gD(F`8InQ5llB6l@1Q_UTm zjsF6%@B8Xw88=|)kaYlZ{M`HO+uTC*qc$J9x?5Y z&dLL~PB?U1!@F_ct&PVPfQDbN7lJ%b3RclH=C1WDEnavImtb;r^-aNJ*EFP+2ikmt zttOCfKG%?dqd6J^F1hs5D_@0atZzuuCfW?8UDjq2UNV-6i8)52!Kl8z$y{!&$&Zf3 z^4=n*pPh}Zy^^P!1r6(j1RXnhNY%pqxWuw49*QQ~XdP;3%hWlS8VhKlK`HUw9Su*$ z{S0i%hhEWE>sXjogoa1A>zTEz(3z#9jH7Y{#V_XY_gb=<77cf*uC-G*<&2`tmTjbL zI|KMb6=dO@y3T+WS_; z*fcyS`n4-TlybcwTZ-Rr!y?hCPC%QR8&};fSTxjr+!GC!Db;2ll|MjTu=8C7yJ$4r z8!zo%1_kCU^hxSnygt8)BwG>9U1O^;qn*%T66$AICVA${F+Ofr{?Pk)Yso}&+Qm(q z6 Q?Kag6wXO`L_b9|)b0ge;oH2W#G*H4HFE++t4613SawOeY>$J6FR}OKlectl z^lvSe=c>$aA={$){jb2tJqdr)zJM9I77Kg;GxK}=T#w&x!oQzFo)L+IhlZKKHgUTZ nU?F>2UQze>u?thDmQw!*;F$K>Pk_K800000NkvXXu0mjfkjJwT literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Platformer/Content/tiny-characters.png b/Source/Demos/Demo.Platformer/Content/tiny-characters.png new file mode 100644 index 0000000000000000000000000000000000000000..f5321057286c87b44ba907d6359c42d6f2e9fd9c GIT binary patch literal 6124 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Platformer/Content/tiny-grey-cloud.png b/Source/Demos/Demo.Platformer/Content/tiny-grey-cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..25a0db929ad19ff57052b8da8170feb26f15dbee GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DinK$vl=HlH+5P$tvGKLkiK0WlCTf(Q)=4PyK1emHprWL2i8 zi(^QHd-9xuhyUx_7+HJ*stz1j!R#h$@Twt@y~iry3S-aLuU}oRwly{K28fj&e9+A_ z!GEIR+Jg^#Ti#zcZve4QvwrC)Pciu6)DYv4cY=4mfPy$r4M)$no&{eT8UxvRHZV&_ YFu3zb2TqyZ{}|*FPgg&ebxsLQ0NM>p+yDRo literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Platformer/Content/tiny-tiles.png b/Source/Demos/Demo.Platformer/Content/tiny-tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..5d09ebf254e480256ed49fbde2868d6943405885 GIT binary patch literal 47059 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 + + + + Debug + AnyCPU + {A7A5E924-A49D-4052-ACA2-894161007B00} + WinExe + Properties + Demo.Platformer + Demo.Platformer + DesktopGL + v4.5 + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + false + 6 + + + true + bin\Release + prompt + 4 + false + false + + + Icon.ico + + + + + + + + + + + + + + + + + + + + + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll + True + + + + + + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + + + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + + + + + + + + + + + PreserveNewest + + + + + {587ce536-216f-41a1-b223-ae502c125b09} + MonoGame.Extended.Animations + + + {35fd1f05-af04-469a-b37a-f9b36c34401c} + MonoGame.Extended.Entities + + + {9b3ab8a1-78aa-471a-afd0-b10b932115bc} + MonoGame.Extended.Graphics + + + {6c8b9e29-d09b-4901-80fd-45aaa35882c6} + MonoGame.Extended.Particles + + + {07b2ade2-73e3-41c4-aea1-d5566a5ab902} + MonoGame.Extended.Tiled + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Entities/Components/BasicCollisionBody.cs b/Source/Demos/Demo.Platformer/Entities/Components/BasicCollisionBody.cs new file mode 100644 index 00000000..a68c5d64 --- /dev/null +++ b/Source/Demos/Demo.Platformer/Entities/Components/BasicCollisionBody.cs @@ -0,0 +1,23 @@ +using Microsoft.Xna.Framework; +using MonoGame.Extended; +using MonoGame.Extended.Entities.Components; + +namespace Demo.Platformer.Entities.Components +{ + public class BasicCollisionBody : EntityComponent + { + public Vector2 Velocity { get; set; } + public Size2 Size { get; set; } + public Vector2 Origin { get; set; } + public RectangleF BoundingRectangle => new RectangleF(Entity.Position - Size * Origin, Size); + public bool IsStatic { get; set; } + public object Tag { get; set; } + + public BasicCollisionBody(Size2 size, Vector2 origin) + { + Size = size; + Origin = origin; + IsStatic = false; + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Entities/Components/BasicCollisionHandler.cs b/Source/Demos/Demo.Platformer/Entities/Components/BasicCollisionHandler.cs new file mode 100644 index 00000000..c97f5b36 --- /dev/null +++ b/Source/Demos/Demo.Platformer/Entities/Components/BasicCollisionHandler.cs @@ -0,0 +1,33 @@ +using System; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Entities.Components; + +namespace Demo.Platformer.Entities.Components +{ + public class BasicCollisionHandler : EntityComponent + { + public virtual void OnCollision(BasicCollisionBody bodyA, BasicCollisionBody bodyB, Vector2 depth) + { + var characterState = bodyA.Entity.GetComponent(); + var absDepthX = Math.Abs(depth.X); + var absDepthY = Math.Abs(depth.Y); + + if (absDepthY < absDepthX) + { + bodyA.Entity.Position += new Vector2(0, depth.Y); // move the player out of the ground or roof + var isOnGround = bodyA.Velocity.Y > 0; + + if (isOnGround) + { + bodyA.Velocity = new Vector2(bodyA.Velocity.X, 0); // set y velocity to zero only if this is a ground collision + characterState.IsJumping = false; + } + } + else + { + bodyA.Entity.Position += new Vector2(depth.X, 0); // move the player out of the wall + bodyA.Velocity = new Vector2(bodyA.Velocity.X, bodyA.Velocity.Y < 0 ? 0 : bodyA.Velocity.Y); // drop the player down if they hit a wall + } + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Entities/Components/CharacterState.cs b/Source/Demos/Demo.Platformer/Entities/Components/CharacterState.cs new file mode 100644 index 00000000..08b562cc --- /dev/null +++ b/Source/Demos/Demo.Platformer/Entities/Components/CharacterState.cs @@ -0,0 +1,17 @@ +using MonoGame.Extended.Entities.Components; + +namespace Demo.Platformer.Entities.Components +{ + public class CharacterState : EntityComponent + { + public CharacterState() + { + HealthPoints = 3; + IsJumping = false; + } + + public int HealthPoints { get; set; } + public bool IsJumping { get; set; } + public bool IsAlive => HealthPoints > 0; + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Entities/Components/EnemyAi.cs b/Source/Demos/Demo.Platformer/Entities/Components/EnemyAi.cs new file mode 100644 index 00000000..a2da18eb --- /dev/null +++ b/Source/Demos/Demo.Platformer/Entities/Components/EnemyAi.cs @@ -0,0 +1,20 @@ +using Microsoft.Xna.Framework; +using MonoGame.Extended; +using MonoGame.Extended.Entities.Components; + +namespace Demo.Platformer.Entities.Components +{ + public class EnemyAi : EntityComponent, IMovable + { + public EnemyAi() + { + Direction = new Vector2(30, 0); + WalkTime = 4.0f; + WalkTimeRemaining = WalkTime; + } + + public Vector2 Direction { get; set; } + public float WalkTime { get; set; } + public float WalkTimeRemaining { get; set; } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Entities/Components/EnemyCollisionHandler.cs b/Source/Demos/Demo.Platformer/Entities/Components/EnemyCollisionHandler.cs new file mode 100644 index 00000000..96e7bc71 --- /dev/null +++ b/Source/Demos/Demo.Platformer/Entities/Components/EnemyCollisionHandler.cs @@ -0,0 +1,30 @@ +using Microsoft.Xna.Framework; +using MonoGame.Extended.Entities; + +namespace Demo.Platformer.Entities.Components +{ + public class EnemyCollisionHandler : BasicCollisionHandler + { + public override void OnCollision(BasicCollisionBody bodyA, BasicCollisionBody bodyB, Vector2 depth) + { + var player = GetEntityByTag(bodyA.Entity, bodyB.Entity, Entities.Player); + var enemy = GetEntityByTag(bodyA.Entity, bodyB.Entity, "BadGuy"); + + if (player != null && enemy != null) + { + enemy.GetComponent().HealthPoints = 0; + player.GetComponent().HealthPoints = 0; + } + + base.OnCollision(bodyA, bodyB, depth); + } + + private static Entity GetEntityByTag(Entity entityA, Entity entityB, string tagName) + { + if ((string) entityA.Tag == tagName) + return entityA; + + return (string) entityB.Tag == tagName ? entityB : null; + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Entities/Components/PlayerCollisionHandler.cs b/Source/Demos/Demo.Platformer/Entities/Components/PlayerCollisionHandler.cs new file mode 100644 index 00000000..ddc1829e --- /dev/null +++ b/Source/Demos/Demo.Platformer/Entities/Components/PlayerCollisionHandler.cs @@ -0,0 +1,22 @@ +using System; +using System.Diagnostics; +using Microsoft.Xna.Framework; + +namespace Demo.Platformer.Entities.Components +{ + public class PlayerCollisionHandler : BasicCollisionHandler + { + public override void OnCollision(BasicCollisionBody bodyA, BasicCollisionBody bodyB, Vector2 depth) + { + var characterState = bodyA.Entity.GetComponent(); + + if ((string) bodyB.Tag == "Deadly") + { + characterState.HealthPoints = 0; + return; + } + + base.OnCollision(bodyA, bodyB, depth); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Entities/EntityFactory.cs b/Source/Demos/Demo.Platformer/Entities/EntityFactory.cs new file mode 100644 index 00000000..f36986da --- /dev/null +++ b/Source/Demos/Demo.Platformer/Entities/EntityFactory.cs @@ -0,0 +1,121 @@ +using System; +using Demo.Platformer.Entities.Components; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended; +using MonoGame.Extended.Animations; +using MonoGame.Extended.Animations.SpriteSheets; +using MonoGame.Extended.Entities; +using MonoGame.Extended.Entities.Components; +using MonoGame.Extended.Particles; +using MonoGame.Extended.Particles.Modifiers; +using MonoGame.Extended.Particles.Profiles; +using MonoGame.Extended.Sprites; +using MonoGame.Extended.TextureAtlases; + +namespace Demo.Platformer.Entities +{ + public static class Entities + { + public const string Player = "Player"; + } + + public class EntityFactory + { + private readonly EntityComponentSystem _entityComponentSystem; + private TextureAtlas _characterTextureAtlas; + + public EntityFactory(EntityComponentSystem entityComponentSystem, ContentManager contentManager) + { + _entityComponentSystem = entityComponentSystem; + + LoadContent(contentManager); + } + + private void LoadContent(ContentManager content) + { + var texture = content.Load("tiny-characters"); + _characterTextureAtlas = TextureAtlas.Create("tiny-characters-atlas", texture, 32, 32, 112); + } + + public Entity CreatePlayer(Vector2 position) + { + var entity = _entityComponentSystem.CreateEntity(Entities.Player, position); + var textureRegion = _characterTextureAtlas[0]; + var animationFactory = new SpriteSheetAnimationFactory(_characterTextureAtlas); + + animationFactory.Add("idle", new SpriteSheetAnimationData(new[] { 12, 13 }, 1.0f)); + animationFactory.Add("walk", new SpriteSheetAnimationData(new[] { 0, 1, 2, 3 })); + animationFactory.Add("jump", new SpriteSheetAnimationData(new[] { 8, 9 }, isLooping: false)); + + entity.AttachComponent(new TransformableComponent(new AnimatedSprite(animationFactory))); + entity.AttachComponent(new BasicCollisionBody(textureRegion.Size, Vector2.One * 0.5f)); + entity.AttachComponent(new PlayerCollisionHandler()); + entity.AttachComponent(new CharacterState()); + entity.Tag = Entities.Player; + + return entity; + } + + public Entity CreateSolid(Vector2 position, Size2 size) + { + var entity = _entityComponentSystem.CreateEntity(position); + entity.AttachComponent(new BasicCollisionBody(size, Vector2.Zero) { IsStatic = true }); + return entity; + } + + public Entity CreateDeadly(Vector2 position, Size2 size) + { + var entity = _entityComponentSystem.CreateEntity(position); + entity.AttachComponent(new BasicCollisionBody(size, Vector2.Zero) { IsStatic = true, Tag = "Deadly" }); + return entity; + } + + public Entity CreateBloodExplosion(Vector2 position, float totalSeconds = 1.0f) + { + var random = new FastRandom(); + var textureRegion = _characterTextureAtlas[0]; + var entity = _entityComponentSystem.CreateEntity(position); + var profile = Profile.Spray(new Vector2(0, -1), MathHelper.Pi); + var term = TimeSpan.FromSeconds(totalSeconds); + var particleEmitter = new ParticleEmitter(textureRegion, 32, term, profile) + { + Parameters = new ParticleReleaseParameters + { + Speed = new Range(140, 200), + Quantity = new Range(32, 64), + Rotation = new Range(-MathHelper.TwoPi, MathHelper.TwoPi) + }, + Modifiers = new IModifier[] + { + new LinearGravityModifier { Direction = Vector2.UnitY, Strength = 350 }, + new OpacityFastFadeModifier(), + new RotationModifier { RotationRate = random.NextSingle(-MathHelper.TwoPi, MathHelper.TwoPi) } + } + }; + entity.AttachComponent(new TransformableComponent(particleEmitter)); + entity.Destroy(delaySeconds: totalSeconds); + return entity; + } + + public Entity CreateBadGuy(Vector2 position, Size2 size) + { + var entity = _entityComponentSystem.CreateEntity(position); + var textureRegion = _characterTextureAtlas[90]; + var animationFactory = new SpriteSheetAnimationFactory(_characterTextureAtlas); + + animationFactory.Add("idle", new SpriteSheetAnimationData(new[] { 100 }, 1.0f)); + animationFactory.Add("walk", new SpriteSheetAnimationData(new[] { 96, 97, 98, 99 }, isPingPong: true)); + + entity.AttachComponent(new TransformableComponent(new AnimatedSprite(animationFactory, "walk"))); + entity.AttachComponent(new BasicCollisionBody(textureRegion.Size, Vector2.One * 0.5f) {Tag = "Deadly"}); + entity.AttachComponent(new EnemyCollisionHandler()); + entity.AttachComponent(new CharacterState()); + entity.AttachComponent(new EnemyAi()); + entity.Tag = "BadGuy"; + + return entity; + } + } +} diff --git a/Source/Demos/Demo.Platformer/Entities/Systems/BasicCollisionSystem.cs b/Source/Demos/Demo.Platformer/Entities/Systems/BasicCollisionSystem.cs new file mode 100644 index 00000000..99921edf --- /dev/null +++ b/Source/Demos/Demo.Platformer/Entities/Systems/BasicCollisionSystem.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Demo.Platformer.Entities.Components; +using Microsoft.Xna.Framework; +using MonoGame.Extended; +using MonoGame.Extended.Entities.Components; +using MonoGame.Extended.Entities.Systems; + +namespace Demo.Platformer.Entities.Systems +{ + public class BasicCollisionSystem : ComponentSystem + { + private readonly Vector2 _gravity; + private readonly List _staticBodies = new List(); + private readonly List _movingBodies = new List(); + + public BasicCollisionSystem(Vector2 gravity) + { + _gravity = gravity; + } + + protected override void OnComponentAttached(EntityComponent component) + { + var body = component as BasicCollisionBody; + + if (body != null) + { + if (body.IsStatic) + _staticBodies.Add(body); + else + _movingBodies.Add(body); + } + + base.OnComponentAttached(component); + } + + protected override void OnComponentDetached(EntityComponent component) + { + var body = component as BasicCollisionBody; + + if (body != null) + { + if (body.IsStatic) + _staticBodies.Remove(body); + else + _movingBodies.Remove(body); + } + + base.OnComponentDetached(component); + } + + public override void Update(GameTime gameTime) + { + var deltaTime = gameTime.GetElapsedSeconds(); + + foreach (var bodyA in _movingBodies) + { + bodyA.Velocity += _gravity * deltaTime; + bodyA.Entity.Position += bodyA.Velocity * deltaTime; + + foreach (var bodyB in _staticBodies.Concat(_movingBodies)) + { + if (bodyA == bodyB) + continue; + + var depth = IntersectionDepth(bodyA.BoundingRectangle, bodyB.BoundingRectangle); + + if (depth != Vector2.Zero) + { + var collisionHandlers = bodyA.Entity.GetComponents(); + + foreach (var collisionHandler in collisionHandlers) + collisionHandler.OnCollision(bodyA, bodyB, depth); + } + } + } + + + } + + public Vector2 IntersectionDepth(RectangleF first, RectangleF second) + { + // Calculate half sizes. + var thisHalfWidth = first.Width / 2.0f; + var thisHalfHeight = first.Height / 2.0f; + var otherHalfWidth = second.Width / 2.0f; + var otherHalfHeight = second.Height / 2.0f; + + // Calculate centers. + var centerA = new Vector2(first.Left + thisHalfWidth, first.Top + thisHalfHeight); + var centerB = new Vector2(second.Left + otherHalfWidth, second.Top + otherHalfHeight); + + // Calculate current and minimum-non-intersecting distances between centers. + var distanceX = centerA.X - centerB.X; + var distanceY = centerA.Y - centerB.Y; + var minDistanceX = thisHalfWidth + otherHalfWidth; + var minDistanceY = thisHalfHeight + otherHalfHeight; + + // If we are not intersecting at all, return (0, 0). + if ((Math.Abs(distanceX) >= minDistanceX) || (Math.Abs(distanceY) >= minDistanceY)) + return Vector2.Zero; + + // Calculate and return intersection depths. + var depthX = distanceX > 0 ? minDistanceX - distanceX : -minDistanceX - distanceX; + var depthY = distanceY > 0 ? minDistanceY - distanceY : -minDistanceY - distanceY; + return new Vector2(depthX, depthY); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Entities/Systems/CharacterStateSystem.cs b/Source/Demos/Demo.Platformer/Entities/Systems/CharacterStateSystem.cs new file mode 100644 index 00000000..60cbd25d --- /dev/null +++ b/Source/Demos/Demo.Platformer/Entities/Systems/CharacterStateSystem.cs @@ -0,0 +1,35 @@ +using System.Linq; +using Demo.Platformer.Entities.Components; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Entities.Systems; + +namespace Demo.Platformer.Entities.Systems +{ + public class CharacterStateSystem : ComponentSystem + { + private readonly EntityFactory _entityFactory; + private readonly Vector2 _spawnPoint; + + public CharacterStateSystem(EntityFactory entityFactory, Vector2 spawnPoint) + { + _entityFactory = entityFactory; + _spawnPoint = spawnPoint; + } + + public override void Update(GameTime gameTime) + { + foreach (var component in GetComponents().ToArray()) + { + if (!component.IsAlive) + { + _entityFactory.CreateBloodExplosion(component.Entity.Position); + component.Entity.Destroy(); + + if(component.Entity.Name == Entities.Player) + _entityFactory.CreatePlayer(_spawnPoint); + } + + } + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Entities/Systems/EnemyMovementSystem.cs b/Source/Demos/Demo.Platformer/Entities/Systems/EnemyMovementSystem.cs new file mode 100644 index 00000000..997bca4a --- /dev/null +++ b/Source/Demos/Demo.Platformer/Entities/Systems/EnemyMovementSystem.cs @@ -0,0 +1,33 @@ +using Demo.Platformer.Entities.Components; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended; +using MonoGame.Extended.Entities.Components; +using MonoGame.Extended.Entities.Systems; +using MonoGame.Extended.Sprites; + +namespace Demo.Platformer.Entities.Systems +{ + public class EnemyMovementSystem : ComponentSystem + { + public override void Update(GameTime gameTime) + { + var deltaTime = gameTime.GetElapsedSeconds(); + + foreach (var component in GetComponents()) + { + component.Position += component.Direction * deltaTime; + component.WalkTimeRemaining -= deltaTime; + + if (component.WalkTimeRemaining <= 0) + { + var transformableComponent = component.Entity.GetComponent>(); + var sprite = transformableComponent.Target; + sprite.Effect = sprite.Effect == SpriteEffects.None ? SpriteEffects.FlipHorizontally : SpriteEffects.None; + component.Direction = -component.Direction; + component.WalkTimeRemaining = component.WalkTime; + } + } + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Entities/Systems/PlayerMovementSystem.cs b/Source/Demos/Demo.Platformer/Entities/Systems/PlayerMovementSystem.cs new file mode 100644 index 00000000..5b14bd00 --- /dev/null +++ b/Source/Demos/Demo.Platformer/Entities/Systems/PlayerMovementSystem.cs @@ -0,0 +1,92 @@ +using System; +using Demo.Platformer.Entities.Components; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended; +using MonoGame.Extended.Animations; +using MonoGame.Extended.Entities; +using MonoGame.Extended.Entities.Components; +using MonoGame.Extended.Entities.Systems; +using MonoGame.Extended.Sprites; + +namespace Demo.Platformer.Entities.Systems +{ + public class PlayerMovementSystem : ComponentSystem + { + private const float _walkSpeed = 220f; + private const float _jumpSpeed = 425f; + private KeyboardState _previousKeyboardState; + private float _jumpDelay = 1.0f; + private Entity _playerEntity; + + protected override void OnEntityCreated(Entity entity) + { + if (entity.Name == Entities.Player) + _playerEntity = entity; + + base.OnEntityCreated(entity); + } + + protected override void OnEntityDestroyed(Entity entity) + { + if (entity.Name == Entities.Player) + _playerEntity = null; + + base.OnEntityDestroyed(entity); + } + + public override void Update(GameTime gameTime) + { + if(_playerEntity == null) + return; + + var deltaTime = gameTime.GetElapsedSeconds(); + var keyboardState = Keyboard.GetState(); + var body = _playerEntity.GetComponent(); + var playerState = _playerEntity.GetComponent(); + var sprite = _playerEntity.GetComponent>().Target as AnimatedSprite; + var velocity = new Vector2(0, body.Velocity.Y); + + if (keyboardState.IsKeyDown(Keys.Left) || keyboardState.IsKeyDown(Keys.A)) + { + sprite.Effect = SpriteEffects.FlipHorizontally; + sprite.Play("walk"); + velocity += new Vector2(-_walkSpeed, 0); + } + + if (keyboardState.IsKeyDown(Keys.Right) || keyboardState.IsKeyDown(Keys.D)) + { + sprite.Effect = SpriteEffects.None; + sprite.Play("walk"); + velocity += new Vector2(_walkSpeed, 0); + } + + if (playerState.IsJumping) + _jumpDelay -= deltaTime * 2.8f; + else + _jumpDelay = 1.0f; + + if (keyboardState.IsKeyDown(Keys.W) || keyboardState.IsKeyDown(Keys.Up)) + { + if(!playerState.IsJumping) + sprite.Play("jump"); + + velocity = new Vector2(velocity.X, -_jumpSpeed * _jumpDelay); + playerState.IsJumping = true; + } + else if (_previousKeyboardState.IsKeyDown(Keys.W) || _previousKeyboardState.IsKeyDown(Keys.Up)) + { + // when the jump button is released we kill most of the upward velocity + velocity = new Vector2(velocity.X, velocity.Y * 0.2f); + } + + if (!playerState.IsJumping && Math.Abs(body.Velocity.X) < float.Epsilon) + sprite.Play("idle"); + + body.Velocity = velocity; + + _previousKeyboardState = keyboardState; + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/GameMain.cs b/Source/Demos/Demo.Platformer/GameMain.cs new file mode 100644 index 00000000..7d37941e --- /dev/null +++ b/Source/Demos/Demo.Platformer/GameMain.cs @@ -0,0 +1,47 @@ +using Demo.Platformer.Screens; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended.Screens; + +namespace Demo.Platformer +{ + public class GameMain : Game + { + // ReSharper disable once NotAccessedField.Local + private readonly GraphicsDeviceManager _graphicsDeviceManager; + + public GameMain() + { + _graphicsDeviceManager = new GraphicsDeviceManager(this); + Content.RootDirectory = "Content"; + IsMouseVisible = true; + Window.AllowUserResizing = true; + } + + protected override void Initialize() + { + var screens = new [] { new GameScreen(Services, GraphicsDevice, Window) }; + + Components.Add(new ScreenComponent(this, screens)); + + base.Initialize(); + } + + protected override void Update(GameTime gameTime) + { + var keyboardState = Keyboard.GetState(); + + if (keyboardState.IsKeyDown(Keys.Escape)) + Exit(); + + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + //GraphicsDevice.Clear(Color.Black); + + base.Draw(gameTime); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Icon.bmp b/Source/Demos/Demo.Platformer/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 RJoIeLznU7AhJ`o~_y6Yy51#-4 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Platformer/MonoGame.Framework.dll.config b/Source/Demos/Demo.Platformer/MonoGame.Framework.dll.config new file mode 100644 index 00000000..09710ae4 --- /dev/null +++ b/Source/Demos/Demo.Platformer/MonoGame.Framework.dll.config @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Source/Demos/Demo.Platformer/OpenTK.dll.config b/Source/Demos/Demo.Platformer/OpenTK.dll.config new file mode 100644 index 00000000..9342d688 --- /dev/null +++ b/Source/Demos/Demo.Platformer/OpenTK.dll.config @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Program.cs b/Source/Demos/Demo.Platformer/Program.cs new file mode 100644 index 00000000..ef1cdaf1 --- /dev/null +++ b/Source/Demos/Demo.Platformer/Program.cs @@ -0,0 +1,16 @@ +using System; + +namespace Demo.Platformer +{ + internal static class Program + { + [STAThread] + private static void Main(string[] args) + { + using (var game = new GameMain()) + { + game.Run(); + } + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Properties/AssemblyInfo.cs b/Source/Demos/Demo.Platformer/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..ffe17dac --- /dev/null +++ b/Source/Demos/Demo.Platformer/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. + +[assembly: AssemblyTitle("Demo.Platformer")] +[assembly: AssemblyProduct("Demo.Platformer")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. + +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM + +[assembly: Guid("9b7203c6-a9a6-40e9-a798-893df7f10bf1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] + +[assembly: AssemblyVersion("3.4.0.456")] +[assembly: AssemblyFileVersion("3.4.0.456")] \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/Screens/GameScreen.cs b/Source/Demos/Demo.Platformer/Screens/GameScreen.cs new file mode 100644 index 00000000..899b822e --- /dev/null +++ b/Source/Demos/Demo.Platformer/Screens/GameScreen.cs @@ -0,0 +1,110 @@ +using System; +using System.Linq; +using Demo.Platformer.Entities; +using Demo.Platformer.Entities.Systems; +using Demo.Platformer.Services; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended; +using MonoGame.Extended.Entities; +using MonoGame.Extended.Entities.Systems; +using MonoGame.Extended.Screens; +using MonoGame.Extended.Tiled; +using MonoGame.Extended.Graphics; +using MonoGame.Extended.ViewportAdapters; + +namespace Demo.Platformer.Screens +{ + public class GameScreen : Screen + { + public GameScreen(IServiceProvider services, GraphicsDevice graphicsDevice, GameWindow window) + { + Services = services; + GraphicsDevice = graphicsDevice; + Window = window; + } + + private Camera2D _camera; + private TiledMap _map; + private TiledMapRenderer _mapRenderer; + private EntityComponentSystem _entityComponentSystem; + private EntityFactory _entityFactory; + + public IServiceProvider Services { get; } + public ContentManager Content { get; private set; } + public GraphicsDevice GraphicsDevice { get; } + public GameWindow Window { get; } + + public override void Initialize() + { + base.Initialize(); + + Content = new ContentManager(Services, "Content"); + } + + public override void LoadContent() + { + base.LoadContent(); + + var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480); + _camera = new Camera2D(viewportAdapter); + + _map = Content.Load("level-1"); + _mapRenderer = new TiledMapRenderer(GraphicsDevice); + + _entityComponentSystem = new EntityComponentSystem(); + _entityFactory = new EntityFactory(_entityComponentSystem, Content); + + var service = new TiledObjectToEntityService(_entityFactory); + var spawnPoint = _map.GetLayer("entities").Objects.Single(i => i.Type == "Spawn").Position; + + _entityComponentSystem.RegisterSystem(new PlayerMovementSystem()); + _entityComponentSystem.RegisterSystem(new EnemyMovementSystem()); + _entityComponentSystem.RegisterSystem(new CharacterStateSystem(_entityFactory, spawnPoint)); + _entityComponentSystem.RegisterSystem(new BasicCollisionSystem(gravity: new Vector2(0, 1150))); + _entityComponentSystem.RegisterSystem(new ParticleEmitterSystem()); + _entityComponentSystem.RegisterSystem(new AnimatedSpriteSystem()); + _entityComponentSystem.RegisterSystem(new SpriteBatchSystem(GraphicsDevice, _camera) { SamplerState = SamplerState.PointClamp }); + + service.CreateEntities(_map.GetLayer("entities").Objects); + } + + public override void Update(GameTime gameTime) + { + base.Update(gameTime); + + _entityComponentSystem.Update(gameTime); + } + + public override void Draw(GameTime gameTime) + { + base.Draw(gameTime); + + GraphicsDevice.Clear(Color.Black); + + var viewMatrix = _camera.GetViewMatrix(); + var projectionMatrix = Matrix.CreateOrthographicOffCenter(0, GraphicsDevice.Viewport.Width, + GraphicsDevice.Viewport.Height, 0, 0f, -1f); + + // painter's algorithm; just draw things in the expected order + + var backgroundLayer = _map.GetLayer("background"); + _mapRenderer.Draw(backgroundLayer, ref viewMatrix, ref projectionMatrix); + + var solidsLayer = _map.GetLayer("solids"); + _mapRenderer.Draw(solidsLayer); + + var decorationsLayer = _map.GetLayer("decorations"); + _mapRenderer.Draw(decorationsLayer, ref viewMatrix, ref projectionMatrix); + + _entityComponentSystem.Draw(gameTime); + + var decorations2Layer = _map.GetLayer("decorations2"); + _mapRenderer.Draw(decorations2Layer, ref viewMatrix, ref projectionMatrix); + + var deadliesLayer = _map.GetLayer("deadlies"); + _mapRenderer.Draw(deadliesLayer, ref viewMatrix, ref projectionMatrix); + } + } +} diff --git a/Source/Demos/Demo.Platformer/Services/TiledObjectToEntityService.cs b/Source/Demos/Demo.Platformer/Services/TiledObjectToEntityService.cs new file mode 100644 index 00000000..8176704e --- /dev/null +++ b/Source/Demos/Demo.Platformer/Services/TiledObjectToEntityService.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using Demo.Platformer.Entities; +using MonoGame.Extended.Entities; +using MonoGame.Extended.Tiled; + +namespace Demo.Platformer.Services +{ + public class TiledObjectToEntityService + { + private readonly EntityFactory _entityFactory; + + public TiledObjectToEntityService(EntityFactory entityFactory) + { + _entityFactory = entityFactory; + _createEntityFunctions = new Dictionary> + { + {"Spawn", tiledObject => _entityFactory.CreatePlayer(tiledObject.Position)}, + {"Solid", tiledObject => _entityFactory.CreateSolid(tiledObject.Position, tiledObject.Size) }, + {"Deadly", tiledObject => _entityFactory.CreateDeadly(tiledObject.Position, tiledObject.Size) }, + {"BadGuy", tiledObject => _entityFactory.CreateBadGuy(tiledObject.Position, tiledObject.Size) } + }; + } + + private readonly Dictionary> _createEntityFunctions; + + public void CreateEntities(TiledMapObject[] tiledObjects) + { + foreach (var tiledObject in tiledObjects) + _createEntityFunctions[tiledObject.Type](tiledObject); + } + } +} diff --git a/Source/Demos/Demo.Platformer/app.config b/Source/Demos/Demo.Platformer/app.config new file mode 100644 index 00000000..5c73fc53 --- /dev/null +++ b/Source/Demos/Demo.Platformer/app.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Platformer/app.manifest b/Source/Demos/Demo.Platformer/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.Platformer/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.Platformer/packages.config b/Source/Demos/Demo.Platformer/packages.config new file mode 100644 index 00000000..9b38dcf7 --- /dev/null +++ b/Source/Demos/Demo.Platformer/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.SceneGraphs/Demo.SceneGraphs.csproj b/Source/Demos/Demo.SceneGraphs/Demo.SceneGraphs.csproj index 69101262..658c0167 100644 --- a/Source/Demos/Demo.SceneGraphs/Demo.SceneGraphs.csproj +++ b/Source/Demos/Demo.SceneGraphs/Demo.SceneGraphs.csproj @@ -23,6 +23,7 @@ 4 false false + 6 true @@ -41,31 +42,66 @@ - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\MonoGame.Framework.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\NVorbis.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\OpenTK.dll + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll True - + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + @@ -77,6 +113,10 @@ + + {fe61c3d7-d96d-4aa4-9ef1-17e457bb2c7c} + MonoGame.Extended.SceneGraphs + {41724c52-3d50-45bb-81eb-3c8a247eafd1} MonoGame.Extended diff --git a/Source/Demos/Demo.SceneGraphs/Game1.cs b/Source/Demos/Demo.SceneGraphs/Game1.cs index a6f80f30..7a6748b1 100644 --- a/Source/Demos/Demo.SceneGraphs/Game1.cs +++ b/Source/Demos/Demo.SceneGraphs/Game1.cs @@ -144,7 +144,7 @@ namespace Demo.SceneGraphs if (_hoveredNode != null) { - var boundingRectangle = _hoveredNode.GetBoundingRectangle(); + var boundingRectangle = _hoveredNode.BoundingRectangle; _spriteBatch.DrawRectangle(boundingRectangle, Color.Black); } diff --git a/Source/Demos/Demo.SceneGraphs/Icon.bmp b/Source/Demos/Demo.SceneGraphs/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 + + + + + + + + diff --git a/Source/Demos/Demo.SceneGraphs/app.manifest b/Source/Demos/Demo.SceneGraphs/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.SceneGraphs/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.SceneGraphs/packages.config b/Source/Demos/Demo.SceneGraphs/packages.config index a5caee24..9b38dcf7 100644 --- a/Source/Demos/Demo.SceneGraphs/packages.config +++ b/Source/Demos/Demo.SceneGraphs/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Content/Content.mgcb b/Source/Demos/Demo.Screens/Content/Content.mgcb new file mode 100644 index 00000000..3c296118 --- /dev/null +++ b/Source/Demos/Demo.Screens/Content/Content.mgcb @@ -0,0 +1,45 @@ + +#----------------------------- Global Properties ----------------------------# + +/outputDir:bin/$(Platform) +/intermediateDir:obj/$(Platform) +/platform:Windows +/config: +/profile:Reach +/compress:False + +#-------------------------------- References --------------------------------# + +/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll + +#---------------------------------- Content ---------------------------------# + +#begin logo-square-128.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:logo-square-128.png + +#begin montserrat-32.fnt +/importer:BitmapFontImporter +/processor:BitmapFontProcessor +/build:montserrat-32.fnt + +#begin montserrat-32_0.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:montserrat-32_0.png + diff --git a/Source/Demos/Demo.Screens/Content/logo-square-128.png b/Source/Demos/Demo.Screens/Content/logo-square-128.png new file mode 100644 index 0000000000000000000000000000000000000000..1dbe3e85cf58f08270faf30af047db9917cca3c4 GIT binary patch literal 3513 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Screens/Content/montserrat-32.fnt b/Source/Demos/Demo.Screens/Content/montserrat-32.fnt new file mode 100644 index 00000000..51af461a --- /dev/null +++ b/Source/Demos/Demo.Screens/Content/montserrat-32.fnt @@ -0,0 +1,341 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Demos/Demo.Screens/Content/montserrat-32_0.png b/Source/Demos/Demo.Screens/Content/montserrat-32_0.png new file mode 100644 index 0000000000000000000000000000000000000000..7ef6ac07dd53d8ae6b8390e0d7b2f411dcecbb4c GIT binary patch literal 10313 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Screens/Demo.Screens.csproj b/Source/Demos/Demo.Screens/Demo.Screens.csproj new file mode 100644 index 00000000..33928556 --- /dev/null +++ b/Source/Demos/Demo.Screens/Demo.Screens.csproj @@ -0,0 +1,137 @@ + + + + + Debug + AnyCPU + {50C281D9-1D55-4E5C-836B-94110EC09605} + WinExe + Properties + Demo.Screens + Demo.Screens + DesktopGL + v4.5 + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + false + 6 + + + true + bin\Release + prompt + 4 + false + false + + + Icon.ico + + + + + + + + + + + + + + + + + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll + True + + + + + + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + + + + + + + + + + + + + PreserveNewest + + + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Game1.cs b/Source/Demos/Demo.Screens/Game1.cs new file mode 100644 index 00000000..518d0370 --- /dev/null +++ b/Source/Demos/Demo.Screens/Game1.cs @@ -0,0 +1,60 @@ +using Demo.Screens.Screens; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended; +using MonoGame.Extended.Screens; +using MonoGame.Extended.ViewportAdapters; + +namespace Demo.Screens +{ + public class Game1 : Game + { + // ReSharper disable once NotAccessedField.Local + private readonly GraphicsDeviceManager _graphicsDeviceManager; + + public Game1() + { + _graphicsDeviceManager = new GraphicsDeviceManager(this); + Content.RootDirectory = "Content"; + IsMouseVisible = true; + Window.AllowUserResizing = true; + + ScreenComponent screenComponent; + Components.Add(screenComponent = new ScreenComponent(this)); + + screenComponent.Register(new MainMenuScreen(Services, this)); + screenComponent.Register(new LoadGameScreen(Services)); + screenComponent.Register(new OptionsScreen(Services)); + screenComponent.Register(new AudioOptionsScreen(Services)); + screenComponent.Register(new VideoOptionsScreen(Services)); + screenComponent.Register(new KeyboardOptionsScreen(Services)); + screenComponent.Register(new MouseOptionsScreen(Services)); + } + + protected override void LoadContent() + { + //var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480); + } + + protected override void UnloadContent() + { + } + + protected override void Update(GameTime gameTime) + { + var keyboardState = Keyboard.GetState(); + + if (keyboardState.IsKeyDown(Keys.Escape)) + Exit(); + + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + GraphicsDevice.Clear(Color.Black); + + base.Draw(gameTime); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Icon.bmp b/Source/Demos/Demo.Screens/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 RJoIeLznU7AhJ`o~_y6Yy51#-4 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Screens/MonoGame.Framework.dll.config b/Source/Demos/Demo.Screens/MonoGame.Framework.dll.config new file mode 100644 index 00000000..09710ae4 --- /dev/null +++ b/Source/Demos/Demo.Screens/MonoGame.Framework.dll.config @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Source/Demos/Demo.Screens/OpenTK.dll.config b/Source/Demos/Demo.Screens/OpenTK.dll.config new file mode 100644 index 00000000..9342d688 --- /dev/null +++ b/Source/Demos/Demo.Screens/OpenTK.dll.config @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Program.cs b/Source/Demos/Demo.Screens/Program.cs new file mode 100644 index 00000000..235c532c --- /dev/null +++ b/Source/Demos/Demo.Screens/Program.cs @@ -0,0 +1,16 @@ +using System; + +namespace Demo.Screens +{ + internal static class Program + { + [STAThread] + private static void Main(string[] args) + { + using (var game = new Game1()) + { + game.Run(); + } + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Properties/AssemblyInfo.cs b/Source/Demos/Demo.Screens/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..89f0d8cc --- /dev/null +++ b/Source/Demos/Demo.Screens/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. + +[assembly: AssemblyTitle("Demo.Screens")] +[assembly: AssemblyProduct("Demo.Screens")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. + +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM + +[assembly: Guid("9b7203c6-a9a6-40e9-a798-893df7f10bf1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] + +[assembly: AssemblyVersion("3.4.0.456")] +[assembly: AssemblyFileVersion("3.4.0.456")] \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Screens/AudioOptionsScreen.cs b/Source/Demos/Demo.Screens/Screens/AudioOptionsScreen.cs new file mode 100644 index 00000000..b19255f2 --- /dev/null +++ b/Source/Demos/Demo.Screens/Screens/AudioOptionsScreen.cs @@ -0,0 +1,19 @@ +using System; + +namespace Demo.Screens.Screens +{ + public class AudioOptionsScreen : MenuScreen + { + public AudioOptionsScreen(IServiceProvider serviceProvider) + : base(serviceProvider) + { + } + + public override void LoadContent() + { + base.LoadContent(); + + AddMenuItem("Back", Show); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Screens/KeyboardOptionsScreen.cs b/Source/Demos/Demo.Screens/Screens/KeyboardOptionsScreen.cs new file mode 100644 index 00000000..b3cb71d3 --- /dev/null +++ b/Source/Demos/Demo.Screens/Screens/KeyboardOptionsScreen.cs @@ -0,0 +1,20 @@ +using System; +using MonoGame.Extended.Screens; + +namespace Demo.Screens.Screens +{ + public class KeyboardOptionsScreen : MenuScreen + { + public KeyboardOptionsScreen(IServiceProvider serviceProvider) + : base(serviceProvider) + { + } + + public override void LoadContent() + { + base.LoadContent(); + + AddMenuItem("Back", Show); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Screens/LoadGameScreen.cs b/Source/Demos/Demo.Screens/Screens/LoadGameScreen.cs new file mode 100644 index 00000000..4e4afb7e --- /dev/null +++ b/Source/Demos/Demo.Screens/Screens/LoadGameScreen.cs @@ -0,0 +1,18 @@ +using System; + +namespace Demo.Screens.Screens +{ + public class LoadGameScreen : MenuScreen + { + public LoadGameScreen(IServiceProvider serviceProvider) : base(serviceProvider) + { + } + + public override void LoadContent() + { + base.LoadContent(); + + AddMenuItem("Back", Show); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Screens/MainMenuScreen.cs b/Source/Demos/Demo.Screens/Screens/MainMenuScreen.cs new file mode 100644 index 00000000..42816ae8 --- /dev/null +++ b/Source/Demos/Demo.Screens/Screens/MainMenuScreen.cs @@ -0,0 +1,26 @@ +using System; +using Microsoft.Xna.Framework; + +namespace Demo.Screens.Screens +{ + public class MainMenuScreen : MenuScreen + { + private readonly Game _game; + + public MainMenuScreen(IServiceProvider serviceProvider, Game game) + : base(serviceProvider) + { + _game = game; + } + + public override void LoadContent() + { + base.LoadContent(); + + AddMenuItem("New Game", () => { }); + AddMenuItem("Load Game", Show); + AddMenuItem("Options", Show); + AddMenuItem("Exit", _game.Exit); + } + } +} diff --git a/Source/Demos/Demo.Screens/Screens/MenuItem.cs b/Source/Demos/Demo.Screens/Screens/MenuItem.cs new file mode 100644 index 00000000..c28a78bb --- /dev/null +++ b/Source/Demos/Demo.Screens/Screens/MenuItem.cs @@ -0,0 +1,31 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended; +using MonoGame.Extended.BitmapFonts; + +namespace Demo.Screens.Screens +{ + public class MenuItem + { + public MenuItem(BitmapFont font, string text) + { + Text = text; + Font = font; + Color = Color.White; + } + + public BitmapFont Font { get; } + public string Text { get; set; } + public Vector2 Position { get; set; } + public Color Color { get; set; } + public RectangleF BoundingRectangle => new RectangleF(Position, Font.MeasureString(Text)); + public Action Action { get; set; } + + public void Draw(SpriteBatch spriteBatch) + { + spriteBatch.DrawString(Font, Text, Position, Color); + } + + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Screens/MenuScreen.cs b/Source/Demos/Demo.Screens/Screens/MenuScreen.cs new file mode 100644 index 00000000..2ca8fd62 --- /dev/null +++ b/Source/Demos/Demo.Screens/Screens/MenuScreen.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended; +using MonoGame.Extended.BitmapFonts; +using MonoGame.Extended.Screens; + +namespace Demo.Screens.Screens +{ + public abstract class MenuScreen : Screen + { + private readonly IServiceProvider _serviceProvider; + private SpriteBatch _spriteBatch; + + protected MenuScreen(IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + MenuItems = new List(); + } + + public List MenuItems { get; } + protected BitmapFont Font { get; private set; } + protected ContentManager Content { get; private set; } + + protected void AddMenuItem(string text, Action action) + { + var menuItem = new MenuItem(Font, text) + { + Position = new Vector2(300, 200 + 32 * MenuItems.Count), + Action = action + }; + + MenuItems.Add(menuItem); + } + + public override void Initialize() + { + base.Initialize(); + + Content = new ContentManager(_serviceProvider, "Content"); + } + + public override void Dispose() + { + base.Dispose(); + + _spriteBatch.Dispose(); + } + + public override void LoadContent() + { + base.LoadContent(); + + var graphicsDeviceService = (IGraphicsDeviceService)_serviceProvider.GetService(typeof(IGraphicsDeviceService)); + + _spriteBatch = new SpriteBatch(graphicsDeviceService.GraphicsDevice); + Font = Content.Load("montserrat-32"); + } + + public override void UnloadContent() + { + Content.Unload(); + Content.Dispose(); + + base.UnloadContent(); + } + + private MouseState _previousState; + + public override void Update(GameTime gameTime) + { + base.Update(gameTime); + + var mouseState = Mouse.GetState(); + var isPressed = mouseState.LeftButton == ButtonState.Released && _previousState.LeftButton == ButtonState.Pressed; + + foreach (var menuItem in MenuItems) + { + var isHovered = menuItem.BoundingRectangle.Contains(new Point2(mouseState.X, mouseState.Y)); + + menuItem.Color = isHovered ? Color.Yellow : Color.White; + + if (isHovered && isPressed) + { + menuItem.Action?.Invoke(); + break; + } + } + + _previousState = mouseState; + } + + public override void Draw(GameTime gameTime) + { + base.Draw(gameTime); + + _spriteBatch.Begin(); + + foreach (var menuItem in MenuItems) + menuItem.Draw(_spriteBatch); + + _spriteBatch.End(); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Screens/MouseOptionsScreen.cs b/Source/Demos/Demo.Screens/Screens/MouseOptionsScreen.cs new file mode 100644 index 00000000..c25e5c95 --- /dev/null +++ b/Source/Demos/Demo.Screens/Screens/MouseOptionsScreen.cs @@ -0,0 +1,18 @@ +using System; + +namespace Demo.Screens.Screens +{ + public class MouseOptionsScreen : MenuScreen + { + public MouseOptionsScreen(IServiceProvider serviceProvider) : base(serviceProvider) + { + } + + public override void LoadContent() + { + base.LoadContent(); + + AddMenuItem("Back", Show); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Screens/OptionsScreen.cs b/Source/Demos/Demo.Screens/Screens/OptionsScreen.cs new file mode 100644 index 00000000..28491133 --- /dev/null +++ b/Source/Demos/Demo.Screens/Screens/OptionsScreen.cs @@ -0,0 +1,23 @@ +using System; + +namespace Demo.Screens.Screens +{ + public class OptionsScreen : MenuScreen + { + public OptionsScreen(IServiceProvider serviceProvider) + : base(serviceProvider) + { + } + + public override void LoadContent() + { + base.LoadContent(); + + AddMenuItem("Audio Options", Show); + AddMenuItem("Video Options", Show); + AddMenuItem("Keyboard Options", Show); + AddMenuItem("Mouse Options", Show); + AddMenuItem("Back", Show); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/Screens/VideoOptionsScreen.cs b/Source/Demos/Demo.Screens/Screens/VideoOptionsScreen.cs new file mode 100644 index 00000000..7689e2a9 --- /dev/null +++ b/Source/Demos/Demo.Screens/Screens/VideoOptionsScreen.cs @@ -0,0 +1,18 @@ +using System; + +namespace Demo.Screens.Screens +{ + public class VideoOptionsScreen : MenuScreen + { + public VideoOptionsScreen(IServiceProvider serviceProvider) : base(serviceProvider) + { + } + + public override void LoadContent() + { + base.LoadContent(); + + AddMenuItem("Back", Show); + } + } +} \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/app.config b/Source/Demos/Demo.Screens/app.config new file mode 100644 index 00000000..5c73fc53 --- /dev/null +++ b/Source/Demos/Demo.Screens/app.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.Screens/app.manifest b/Source/Demos/Demo.Screens/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.Screens/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.Screens/packages.config b/Source/Demos/Demo.Screens/packages.config new file mode 100644 index 00000000..9b38dcf7 --- /dev/null +++ b/Source/Demos/Demo.Screens/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/Demos/Demo.SpaceGame/Content/Content.mgcb b/Source/Demos/Demo.SpaceGame/Content/Content.mgcb index 4de10869..17921d20 100644 --- a/Source/Demos/Demo.SpaceGame/Content/Content.mgcb +++ b/Source/Demos/Demo.SpaceGame/Content/Content.mgcb @@ -11,6 +11,7 @@ #-------------------------------- References --------------------------------# /reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll +/reference:../../../MonoGame.Extended.Content.Pipeline.Animations/bin/MonoGame.Extended.Content.Pipeline.Animations.dll #---------------------------------- Content ---------------------------------# @@ -22,6 +23,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:playerShip1_blue.png @@ -33,6 +35,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:meteorBrown_big1.png @@ -44,6 +47,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:laserBlue03.png @@ -55,6 +59,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:meteorBrown_big2.png @@ -66,6 +71,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:meteorBrown_big3.png @@ -77,6 +83,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:meteorBrown_big4.png @@ -88,6 +95,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:meteorBrown_med1.png @@ -99,6 +107,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:meteorBrown_med3.png @@ -110,6 +119,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:meteorBrown_small1.png @@ -121,6 +131,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:meteorBrown_small2.png @@ -132,6 +143,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:meteorBrown_tiny1.png @@ -143,6 +155,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:meteorBrown_tiny2.png @@ -154,6 +167,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:black.png @@ -170,6 +184,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:regular-explosion.png @@ -178,22 +193,6 @@ /processor:TexturePackerProcessor /build:regular-explosion-sheet.json -#begin Fonts/courier-new-32.fnt -/importer:BitmapFontImporter -/processor:BitmapFontProcessor -/build:Fonts/courier-new-32.fnt - -#begin Fonts/courier-new-32_0.png -/importer:TextureImporter -/processor:TextureProcessor -/processorParam:ColorKeyColor=255,0,255,255 -/processorParam:ColorKeyEnabled=True -/processorParam:GenerateMipmaps=False -/processorParam:PremultiplyAlpha=True -/processorParam:ResizeToPowerOfTwo=False -/processorParam:TextureFormat=Color -/build:Fonts/courier-new-32_0.png - #begin Gui/button-clicked.png /importer:TextureImporter /processor:TextureProcessor @@ -202,6 +201,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:Gui/button-clicked.png @@ -213,6 +213,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:Gui/button-hover.png @@ -224,6 +225,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:Gui/button-locked.png @@ -235,6 +237,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:Gui/button-normal.png @@ -246,6 +249,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:Gui/9patch-1.png @@ -257,6 +261,24 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:Gui/9patch-2.png +#begin Fonts/montserrat-32.fnt +/importer:BitmapFontImporter +/processor:BitmapFontProcessor +/build:Fonts/montserrat-32.fnt + +#begin Fonts/montserrat-32_0.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Fonts/montserrat-32_0.png + diff --git a/Source/Demos/Demo.SpaceGame/Content/Fonts/courier-new-32.fnt b/Source/Demos/Demo.SpaceGame/Content/Fonts/courier-new-32.fnt deleted file mode 100644 index 422e36cc..00000000 --- a/Source/Demos/Demo.SpaceGame/Content/Fonts/courier-new-32.fnt +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/Demos/Demo.SpaceGame/Content/Fonts/courier-new-32_0.png b/Source/Demos/Demo.SpaceGame/Content/Fonts/courier-new-32_0.png deleted file mode 100644 index 04fb766831f40dfda3805505c8502059290ef165..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11012 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Demos/Demo.SpaceGame/Content/Fonts/montserrat-32_0.png b/Source/Demos/Demo.SpaceGame/Content/Fonts/montserrat-32_0.png new file mode 100644 index 0000000000000000000000000000000000000000..7ef6ac07dd53d8ae6b8390e0d7b2f411dcecbb4c GIT binary patch literal 10313 zcmeI2_g7O*)b9^fKu|yg>0O!uADVO#Y0^6qnkY3iL3&q|-m8EFBycisQs{&?5QN=~vSduH}Iv*)`%dm?qTR4B+8$N&JKc%`bS2LO1uOFV#t z824f3UTg~hY``nU7Y07xFxizOTwRAfS*uy!*jAaY=p~XwNXS1Dit>^-ly_vC`MN)c zYU~NyjLxYeUN6h@q}e!FouciKrjOHXYEd+LAfukQEDuf-x=uOET{ zQ*=I!iK^I^5{l(pKE1rQ*phz~W+jm`vVI-ZW(hYc1Gjq44WQjiQcY(ydXgpHg`{+~ z{-JJZO3_1ZAN#c}Vn@~wXOPB=r`MYvQZ^UAY-?szuUfJGl@(r1^IC1{Ti*333^>m5fPZmMxvmn0nkaT541B7~eAW=n`Xa-E1z_C=eMs@jc5{dCnMSwKrbn>4q~pQ$;lvazYHF z>+#11l7t-lwbWts-{FSXa^!UT;@DZb9_`*>1_^Y*{p5HqgPY^ZzRw_1Nzn*+{qeH| zOS}qJ7Eu@RSm;>|h$#DF9A^OOHoSgl0-YJAr%(_Q^4gm=Asb>Un}pa5a47VJm5DL@ z%35yj*dXP{&QH+-_LSy==>z*dGLTq|hg7yxpnoXMWMYuZ<=Rv7&gJ(KKC{~5iy)s( zWosgNS}sMLW5lD9k!zM=#BUh8?x~_a3j2;NJBL?cU#2FLig@nbwP!1z+CIkpb6VIR zU1w#j)4NnRa=b+I@iCSLf<=f7;he#~T)f#>QFGl{TI=OiUz2S(bu3aQ43lB|Uh!x9 zvb7RnXP_K!gvaK*aUAN_EM1XcD@xwUcC42jF(#!)Es47;U;=d_b!FT{C2MT?(7R7; z@7fvu7!;Ndug7nPFs=A_d)50YfbsRHdiHJQH>zF5vto-H{rH);$`S5)?$+bQ1)Hh9 zkHXkd-Je*jm3TV#PlL%@({mMG+y^%DA-K#5Cuvg){~aTKi1@5?4Q~ZKG^yUrG4{% z`>Fp(3r^hcBLf@UA5RmnaDFD8&{(mpBkdD9yVmu927i3^=&+$%@zQi6*oiqBP`vK@ z8#hzDECXi)t4~+a<0Y6cqPi=c&nFJ7Vjue@pom{mg!0SPXee|uG(nYY_O=RXA15n6 zjvKB=rh&blA6+8E*_|CaZPQ%RiY+I`>lIHDxMLzg=lci3>Ok&`3W4_sF#O-j!VW1v zMC#@0%^F@l{dc2J!PY7NML*#WFx<%g z(-<}}h#S{Kp5N(X_~5|=1Q3fI8o1T_-#HY)#j7KTL-74ekAvD4r=CQL!!rSUvE9j- zFBTTf0n=A%clsXze^S5sU?u*3bReq5EYZKTT9eI?7$5VHgo}q>gky3qGCUxggE)`Q z*M6K4ChyF>RG9K)rX~h887!~~*+{7Fpq8(+kH!d#%c4YQ<(=oTLi-A48p!cf`GImy;RDPAw054#oFk6jZb`VM$ zDTs-*kUY|JZ?UM6M0`ImFCY1 zZjQMU8Qj2lF9&C(=ATyMSq}7bF+YruXcNkCVxxImZz{{G`b~?l(|AF zu+G$DVX1GmbIq8z5mRgb#<%8G^ymW_cH1vq=K*rtCS$`!#VnYn=H|)28_jlGRknl^ z$?>({jngll<%4{Ww@6oGC~>Rmw6+rGo0ED;J3ObKw6{^g+COZVKBY|)*NUikwBw-- zdxo68e-B{m;2EiIMK92PmFUyvndoe4qqX~76Gk#fbHIDiPikQ*f`!QyIcNgGaRUaurT*M!EX-;gJ z+poax=?>fhM-PasZttSGYbaL68sSph8joY0nC5vr!s7$*eoO7jPW}2Vm+V!8`H#G_ z3b(G!r#zeHUDh3djO340P~dg{*Ns$fvgGlt#)@eEUdL(4j4J9MO4oEd<)NYxU^%Cm zqc^n_O!SN}Oi9Gyd4S8l?a@}tza=IfN1N&Oe&)l5d#=(ir+O5emTjXvBCxX76lwJ3 zD<`20UR4S%PkX*nuffnA)OLfW1K&zc!Cy5PKyF7d zkBv?>G7Aju6@;A5iuVcXV#=jG-}vI^rlh~q_y+c-l%^C)ALw$qWPe3BG@YSgJ#k8o zF#pWUT5KjBv^ESx`)EN&)@$lTtI+=f85gC+; z-wgTr`CU2tL1Ru-;LqbF!+wpu%_^#hlKs+WmP?!IdWdHt2=uF z-QtIENSPf<&E3%%vA~ZOa!z*fX`-MeJgUUhxwUK0#s@n8WJl-n?xb1g-rwqBN#vR2H?1Ol z*WM#(e@PddXb=n8GNX-i?^*MY2*8yK_?ZH$NJXVb8l`z3tFSo+$m} z#{52uz-JBuUU0bfLojZuct=FWz*M;cZ&zo3py$IC{BdRSAA8w9494MKzx zI}{?|b~JY!g6WN|2}|z_If>eH3R$GA{l#bF&kr;i&|RQy=IpwtcZ730XP{-_kagUS zKf5>PZ5>f zXX%S$1Gj4ExS0X40TRkuZg9N3{AHw5mb>>Cc8`Vvm#@uyMOVl@_{1py@!c|30#ZKNDWrrwOZH)wYAn{f|90NNbN%I~-r=A6 z6t&P75Vghy^7WxYF=uWV(tml!{g{F7m-4ZAocE>HkN|ZHcF}#hT_4%2Itw!)c%=^F zD>@rf$6HTZ$=n~iAou*Kdd4mtNdc3FdcW?u_c)uyy$t#`=YnG0lSP1}&RgxunPDCOwm=tY0f_Z=8}k#@ zBfBTJKwnvoZ%Cr)scK6$_Acj zcwoQCdHmK@sQ-*|+ONj(pqIo9=0zvJ?MtoA3#;q5n56wOsrc_s6yzv|8J4JM0~?F3 z$C`|{+7ejAGh~_uEG&%#%)MiB4PLTB{4$pEO*7>JoB|>p@5BwR zEu0fe+qd9t2F54|V)vS_3oj_AwLmwF3|y~;QMQN{7xOwWn8A9p-k}akMc?D&u#(z! zNHFS&NtG5Z41c)9{koGecY_Q*xFB5WBkk`aO;pT;OJ)+7uPkKQVB-diihMWZ4g4|~KR-D6Gn?sRCrdCR{_TTdI;f`0^q22FG0?#DtP)FxSj)3qjG>*r zEFJ=o$Bw&k;<3>U&y{W$FO56M7*dNdBt>M1obs+*{OYkMj_CjH;MQ?G@e|3dijh4D zl93Lb>0p_EGpBHJ=Ha2ktyY;@?3^%~s)eOk+R@8>{Ij}={lf^pkEcvrJ&`=dg-jc; zAKFG<>Vzezg)vM!)`IQ!_}yNqu>Gd4e>CzCun(l~s=?OaTlKdPip375!B5K9Iukmw z9LAD5qkGg^I5+oZ8 z2eJw$4WF%GrXU2pTI39(_MS4Xbe(0!u6zm1GQ7JJ{`^K|XUe&=a8>;QohTvTNVC6Q z^wfzcJ*nxDuDmJj2PO@|GCUvuq64{n-P{88I+isuz<{{JG_N-7wAb$vv4fvGBO?8N zlxx|UG5%f4ZEhXZ54s%ty+D6PIg-J;bc)Ws=3#=){>d^riAX!P9NtvH2Q*)sjTHX< z;+pXt+;UwV1lW(-++oT@6g9Hh?e|-6USD>N!R6ECr5vnuiA%;nGp1fWNvj2JvDL%PfYT#=^vzoYO0D%D~&dZ^!v;$cRFI z#;JAVQh5d&jgi;Fy%(+5jQ9%3Yomx0tz+PbSZDQ(no%rpTX^@@KGVGv3j z(ri@()ptYX!_&ROhA6NQp*m}*x;>?jnQ;2Go9|$AHko#+(7S* zZoBhsP-|p3s5is`U$?&gWme7L2S!0XBq?BP z6T=G`-*+PW%e>u{%?)r>x1f!QJqDnw)V0NV;hjTt4x%`&u`1RYZqESvRc2F&u=zS3 zg7ey>7y|9_PCbaDxgdvS&R+TC;Io%z{;+BP!&JV~PPak-4W-TFz}*2QkWHhMeG{xM z$gFb8kx|9q&}q3DUcE6GObn8zT!`#U^Qf_zP|W`GK>0+XUiPBYZVoA<`4E5-#80Lr zERUFi^Uw=49Y_uUqNOf|%Zu7@&jfd70=Pd#VI<#ZJ|0S{S`baFOCzWMb0?g=nXCe* zyhEf=6CJLHcELHEK%tpFNC74N zis2>5YDVs^_Wq7u2)rZ9=1inCLTE5uV&%B$(|V90atoqea%&d&4VEKGlntbtOzmcT zuP!-NyH;Wd_+ZwY>0nj57j+<;YbeOLjH+sTcVUdj=bpoi)QgRq?AQk_m$VzR#e+4) zc=;UQ&KbLlY*1)hT3WZh`mr1~CBsOnL(CZ{mMePn*7R_K1CSYdCG-Mv9yu;VG)16R zWJ4X1mMr`S*81o4nU-|MRW!Tg$^(%eD&Ep2Q_@+)>m!X&;)v`>odWCA(-tin&xy1u zgg>EajGp+saNli}4-h9p{Vt=&y($k-%7$JTP z%xBZ44AWGfv-J2`_7`HmxT#YoR$m}5(i71Iw+ z9WIg<(H++z{M^YqtjqM7Ix3TP$zOIPuaT!J4mSM!{&(Kk79Ll5Ch|qYjj^rmZsm@T zGY%#v)F#4@q`|R4X_p5C@@}SLA-p5SK|9iytyqzCSS^FNd7g&tzD1_&YSr&exRIE! zzV5;-9Jy>-h3%codP9^7#rzO>fX5nLvX_#9MAqdf9umItF2 z$+Oh^RC3bs@Lu*WsW9strJ9)fps_DUf0g&2AUHGh`TPF>Ilk~JTf!r%7&kK2pv?E4v1U*TV->*iWgj6-u4Og$OV*%z{VTvDs3pV5WjL`BM{zG_>!}JGANmiA zd>F^ML2p+ZAgShZZlQ{JRJhPp*#~YnZSEpuTqr#Q87rWkf{a$(e)Hda%RqXKBah## zy;Zld!~u2d~Ef(W8 zMDi!6PsFg(3^+R&NiqGWKgg!2fr7J7PlVH~8_Znf3OCU|Yzi@#7Zla59AYb$v1uny z3NZItHwKzA9Z5snV(!OJ%I_~pj1x?NwPAK9|29?PNr=B=SM17=9!HZoH!+hy3@)aj zePmc*AD?r(uK3i;fmdLN100H0WO%83nIKTEV~$HZldmO|;bvmsezT}x`yT0hu48J4 zXgI!nt>h3cgX1vGKvp|5;i2cH+YKH9M(`;SGb42TI31W#eCyFd3jlI_YC>DPKq8v1 zu|TO#25c^6_>7TfH*gsxWDMOb@B@2~^RVBG2OMI%XM(oS4aeTm&oY$IDqdw93&5F+ zIUh2DR(9Z^dMff%$$6;dvsI5{FY=57D3pM)p+4HlA15?cwF%i=4LsrzDKgNVwSbxi ztN1{n5ra$h*mUpPoO^pq9iev)PA!A4kBv`E(p2JEWHYISLZ?(S*GF=mV=r5SPj+T% zdg581pZxMPp9;L%?_q5_UGT@gYN&DZZkpe%8Iijrm-RnoT?oFtK7D?+6nbCo_Udp1 z)_ik)x)_W)6Q5%ZzS<8@4@-|*8+m?vRYTLJ`LF3>i+AurA5YH4EsjUe3P`K1PyHLk z=AR;M*p+2;{es^%h$^V<`UK^AF(Zv_K8(A${ofX?2ROE1WEproX?&kmE}%I0b~&6i zNd8}`;RY5jccFTF(sp}|4c3Or___}T2*#zpF)3ttosirMNo{&X*99tY;i|SjmiBw> z`_f^8$-MejtF_EURxdP!N_JZIuZrhTT60EZK+eM_{^r9ZL1c~dv)np!$~ z=$XfSP7eS#Ns=b z*NTr*OnnocD-S%QbDB%%2As~)L}=9ShRnuM@n;n@W{qd^X-=pj&&K^Y;9~bryqkKk z*-8m`)D8UppT5`K)KNd8pq~HA!1!!iX){&mC0A~u7mVm@b}SgHQap(<0279Q-f4#T z`VQYfyJ{L{D*v0j@F}GP`NXD(sVSb@%RWi!W9(1&cq{FHzw_w^-kRi7taT zunv$<7x!l1$@Y6DPFIqt8QhGlaD82P<9^Ezo~K!^WtlbR;kIQl44Lq64f`S}1zo7KgzN)U z^^_BkAzbH0%vh&9)JKZokqVi(uvoTnCh)WRA{khBe5x@kwP^1BfvACQifqUKA)s%2 zt7p*)RGlktKVMyXJCJ_;%guwx3)C{ZK1OLG9rpMT!QCNHWb{Fog|=z(aq<1E6Y9-0 zcUe3glv|>oVj#_YOCodVtuSJ|aQLQRE(fT}*0I&E6&)oQI&`TS7xS0kg#~fKmcI?C z=r;Lf!)*4_Kc({(Q;cf8;yawRtaH`1d|AgVls)fKf7mJ)yLa&Int7%HVjO}JYn?XW zxO`DFWLFC8am9ag`7^;U5~{`H_gJyJ7AYGLn;$PI9a}6$4hfeOd57$pkmjZ%{lFz( z(@I@1_yA~J*}ir?64YMW6s_KN78;pZG^Ol7`F+IZe~{KElo!3UGZR3Su7s%qwJro{ zN&1VJ9YGN?22rpS>%HSnh775aA+53Y7x?X73CKziX)hmvxI zW+~Iu0nyFcL$`iV#B!(Zscp~g^LDU&ZWThWv##TL<{o1um@=^}|+Bc@#^=9z{M{G!SN+B$`;7E`MZe>@RdAD9+9($@8`)hHIw19`P07PQ%OSN z?KF_tN$W)m>}Exn@vWI(GviW@0e0DlHIk4tbsaGIC#m2JXEjOxWrvS5*r$TKvYv4B z5VxZ?B#Iv=*xx-YcsOse=-$dWbW>d8=in#u!;bG{OBY!vm5qbqbq>}j_N{j_Gc>79 zleBr-p)3H@O8>4aYFMw{-1|_IWZojr*XKOZ)h)&S)T3~{n9F&mz@d%A5UoiA6#TA< zE0PkVV3?cT2$hnURWpOTTaNxX{tTU}xcle-ScXrPM?cm<^~sC8)BFlMshZ6RjEnKW zAzOVEBD30aeKOT-%iT2ypgLs-EX1Lq2}BsgcHA;Z$>=sj>OaUTZL0XzR}0yN{K@kEdH;}Mp=v{!7~ zao>LA`WLa)*!(!pYBVVQ{^ws2{5HkBuZ*j<;#dxCE#$jr&^lyW(^m@Z4GEvn7L^$D zqeAnD9Qw`1$2v+2j&pH@e;Yur>F-g~4gH3P`$3X5M5X<`rCxWWiTlyZ#P{-Q(>Hx7 z*|l#5020D~X90$_>!5_Pk;>{7ZUOtw{g02IXMHa(jh^61VdrvyiTp(z7Z-;n+8}p7 z+R0IUsZszM2)5T%Reczgx_g*k`P1AV$~SrtY38om#BQ~Tpyyv?0{w~33iSS5KiEH5 z?)B@1#{9|26#yY_uU#<}e>wA#wU}C0r8Z+Kw7YwxLPZ26oS6J2D927FX}$5uMvLFx z^g81DT6G#hUOreN<4SyLJJt|dRYxfAe@0cXiYSYS8LJHYndCog1v=)M-cu!rtphkQ zbgk_JI%_A!BMGVhU_p3^I0ge?#S1TL2{*X1OOdLSqiEy6^KA) ziTeIEV9ghP5n{YcKI1j+(~Zmo5`v^`OkmfhyE22eW_Lp}{}WK-X;i8&)T+mM-)hGd z5!Ty0Am}KbHPqc5t>xjnjwh`0Sr$Y@I*hBeA=>P=JIn51+moAnOx0dp@m75Mc=}f@ zWAwxQkzn@FRX)eEuZ?%v?v!5y{Uu_hn)wArbPj*6h9a0phYu1HT{nlnlKz26RP*y^ zF7J>d7O|%%vWYgdp2Zd0je`aG76F06V?m#0FFzki)J^$DGh&nWJr@eU5q-TJF0&YQ zW1aqmD1X(x-z8tgOz^5#Z&#d}!DmKhhzc<2)a849_(GjHe|PFH3BuE9jY)pHqtMD{ z-`DA~95F0{N91TAs2^j-@77iw;sD+*)^fyl8VvIYI{;tVaD0R)>ud32Rk19iRH2go+N}L~ z#-j+?FdvoV9mPNR;wmc9*@vRqXZ!Ye@NGP7>-|Ebf64IcyEQ31xrJSHpAyo$ZigbT z(CL;z=UsG`0qnQWefE|xaaE zpzGr)%jW@Sdsd*UL!2-VKArbo+&nOW$^~8=Wx2MVui?H28sFZm#6Q1zRM3Lc$2mb4 zn?=rGY(b)Xx5~l}@q`bk_{j1ThpZ?NUMk;d0>0bUI!oEzM^kBn-xb- z#?h>h)}Dp5xPmUsiDAb*S^-tAZ#&e}j@2CX_U0oO*+ym5@8&16tVm1rJ~#vzN}HzG zMSDL|fKKi9MiYiS%*_+CY5tvH^&Us?(1F#H)1HUBVLZPJ)RxquXma7rt@q{6Pbb2E;I;g73()Zl1k2W;ikRSLtfogsyj9JU+0s|OOwKyV& z-zujkDdM-6Vv-g^6{c!P2<`DdX{iptI!)j+kH+i1 z9Z7t)i`IJJqqG?{flC)f58`>O(mbpx2!KALFz^AqfJMAOalTzNmh15H$`V zsbxzyR_GPbvObEg!zX3G#T#v}x0}UX=pMDNZ;C1`JjER-bI|4aOsPP^{{P?p-}s>S c;OcqKQQpDhJS%S85kcUUl9pnH!kbV31Fkt(bpQYW literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.SpaceGame/Demo.SpaceGame.csproj b/Source/Demos/Demo.SpaceGame/Demo.SpaceGame.csproj index 0d179907..c1e15eff 100644 --- a/Source/Demos/Demo.SpaceGame/Demo.SpaceGame.csproj +++ b/Source/Demos/Demo.SpaceGame/Demo.SpaceGame.csproj @@ -23,6 +23,7 @@ 4 false false + 6 true @@ -49,27 +50,64 @@ - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\MonoGame.Framework.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\NVorbis.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\OpenTK.dll + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll True - + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + - + @@ -90,7 +128,6 @@ - @@ -99,7 +136,6 @@ - @@ -107,6 +143,10 @@ + + {587ce536-216f-41a1-b223-ae502c125b09} + MonoGame.Extended.Animations + {41724c52-3d50-45bb-81eb-3c8a247eafd1} MonoGame.Extended diff --git a/Source/Demos/Demo.SpaceGame/Entities/Explosion.cs b/Source/Demos/Demo.SpaceGame/Entities/Explosion.cs index 0b42e259..d350e145 100644 --- a/Source/Demos/Demo.SpaceGame/Entities/Explosion.cs +++ b/Source/Demos/Demo.SpaceGame/Entities/Explosion.cs @@ -1,35 +1,33 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using MonoGame.Extended.Animations; +using MonoGame.Extended.Animations.SpriteSheets; using MonoGame.Extended.Sprites; namespace Demo.SpaceGame.Entities { public class Explosion : Entity { - private readonly SpriteSheetAnimator _animator; + private readonly AnimatedSprite _sprite; - public Explosion(SpriteSheetAnimationGroup animations, Vector2 position, float radius) + public Explosion(SpriteSheetAnimationFactory animations, Vector2 position, float radius) { - _animator = new SpriteSheetAnimator(animations) + _sprite = new AnimatedSprite(animations) { - Sprite = { - Position = position, - Scale = Vector2.One * radius * 0.2f - }, - IsLooping = false + Position = position, + Scale = Vector2.One * radius * 0.2f }; - _animator.PlayAnimation("explode", Destroy); + _sprite.Play("explode", Destroy); } public override void Update(GameTime gameTime) { - _animator.Update(gameTime); + _sprite.Update(gameTime); } public override void Draw(SpriteBatch spriteBatch) { - spriteBatch.Draw(_animator); + spriteBatch.Draw(_sprite); } } } \ No newline at end of file diff --git a/Source/Demos/Demo.SpaceGame/Entities/Meteor.cs b/Source/Demos/Demo.SpaceGame/Entities/Meteor.cs index d9bc1f37..05b85096 100644 --- a/Source/Demos/Demo.SpaceGame/Entities/Meteor.cs +++ b/Source/Demos/Demo.SpaceGame/Entities/Meteor.cs @@ -1,6 +1,6 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using MonoGame.Extended.Shapes; +using MonoGame.Extended; using MonoGame.Extended.Sprites; using MonoGame.Extended.TextureAtlases; diff --git a/Source/Demos/Demo.SpaceGame/Entities/MeteorFactory.cs b/Source/Demos/Demo.SpaceGame/Entities/MeteorFactory.cs index 878df780..4f43cb23 100644 --- a/Source/Demos/Demo.SpaceGame/Entities/MeteorFactory.cs +++ b/Source/Demos/Demo.SpaceGame/Entities/MeteorFactory.cs @@ -4,7 +4,6 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using MonoGame.Extended; -using MonoGame.Extended.Shapes; using MonoGame.Extended.TextureAtlases; namespace Demo.SpaceGame.Entities @@ -73,7 +72,7 @@ namespace Demo.SpaceGame.Entities } } - public void SpawnNewMeteor(Vector2 playerPosition) + public void SpawnNewMeteor(Point2 playerPosition) { var rotationSpeed = _random.Next(-10, 10) * 0.1f; var spawnCircle = new CircleF(playerPosition, 630); diff --git a/Source/Demos/Demo.SpaceGame/Entities/Spaceship.cs b/Source/Demos/Demo.SpaceGame/Entities/Spaceship.cs index 7d1b8b38..2b30fcf0 100644 --- a/Source/Demos/Demo.SpaceGame/Entities/Spaceship.cs +++ b/Source/Demos/Demo.SpaceGame/Entities/Spaceship.cs @@ -2,7 +2,6 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using MonoGame.Extended; -using MonoGame.Extended.Shapes; using MonoGame.Extended.Sprites; using MonoGame.Extended.TextureAtlases; diff --git a/Source/Demos/Demo.SpaceGame/Game1.cs b/Source/Demos/Demo.SpaceGame/Game1.cs index 84d87fe1..afbe3acd 100644 --- a/Source/Demos/Demo.SpaceGame/Game1.cs +++ b/Source/Demos/Demo.SpaceGame/Game1.cs @@ -4,9 +4,8 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using MonoGame.Extended; -using MonoGame.Extended.Animations; +using MonoGame.Extended.Animations.SpriteSheets; using MonoGame.Extended.BitmapFonts; -using MonoGame.Extended.Shapes; using MonoGame.Extended.TextureAtlases; using MonoGame.Extended.ViewportAdapters; @@ -20,7 +19,7 @@ namespace Demo.SpaceGame private Texture2D _backgroundTexture; private BulletFactory _bulletFactory; private Camera2D _camera; - private SpriteSheetAnimationGroup _explosionAnimations; + private SpriteSheetAnimationFactory _explosionAnimations; private BitmapFont _font; private MeteorFactory _meteorFactory; private Spaceship _player; @@ -57,10 +56,10 @@ namespace Demo.SpaceGame protected override void LoadContent() { _viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480); - _font = Content.Load("Fonts/courier-new-32"); + _font = Content.Load("Fonts/montserrat-32"); _camera = new Camera2D(_viewportAdapter); - _explosionAnimations = Content.Load("explosion-animations"); + _explosionAnimations = Content.Load("explosion-animations"); _spriteBatch = new SpriteBatch(GraphicsDevice); @@ -75,12 +74,10 @@ namespace Demo.SpaceGame _meteorFactory = new MeteorFactory(_entityManager, Content); for (var i = 0; i < 13; i++) - { _meteorFactory.SpawnNewMeteor(_player.Position); - } } - private void SpawnPlayer(BulletFactory bulletFactory) + private void SpawnPlayer(IBulletFactory bulletFactory) { var spaceshipTexture = Content.Load("playerShip1_blue"); var spaceshipRegion = new TextureRegion2D(spaceshipTexture); @@ -98,43 +95,29 @@ namespace Demo.SpaceGame var mouseState = Mouse.GetState(); if (keyboardState.IsKeyDown(Keys.Escape)) - { Exit(); - } if (_player != null && !_player.IsDestroyed) { const float acceleration = 5f; if (keyboardState.IsKeyDown(Keys.W) || keyboardState.IsKeyDown(Keys.Up)) - { _player.Accelerate(acceleration); - } if (keyboardState.IsKeyDown(Keys.S) || keyboardState.IsKeyDown(Keys.Down)) - { _player.Accelerate(-acceleration); - } if (keyboardState.IsKeyDown(Keys.A) || keyboardState.IsKeyDown(Keys.Left)) - { - _player.Rotation -= deltaTime * 3f; - } + _player.Rotation -= deltaTime*3f; if (keyboardState.IsKeyDown(Keys.D) || keyboardState.IsKeyDown(Keys.Right)) - { - _player.Rotation += deltaTime * 3f; - } + _player.Rotation += deltaTime*3f; if (keyboardState.IsKeyDown(Keys.Space) || mouseState.LeftButton == ButtonState.Pressed) - { _player.Fire(); - } if (_previousMouseState.X != mouseState.X || _previousMouseState.Y != mouseState.Y) - { _player.LookAt(_camera.ScreenToWorld(new Vector2(mouseState.X, mouseState.Y))); - } _camera.LookAt(_player.Position + _player.Velocity * 0.2f); _camera.Zoom = 1.0f - _player.Velocity.Length() / 500f; @@ -175,9 +158,7 @@ namespace Demo.SpaceGame Explode(laser.Position, meteor.Size); if (meteor.Size >= 2) - { _meteorFactory.SplitMeteor(meteor); - } } if (_player != null && _shieldHealth > 0 && meteor.BoundingCircle.Intersects(new CircleF(_player.Position, _shieldRadius))) @@ -204,13 +185,13 @@ namespace Demo.SpaceGame var sourceRectangle = new Rectangle(0, 0, _viewportAdapter.VirtualWidth, _viewportAdapter.VirtualHeight); sourceRectangle.Offset(_camera.Position * new Vector2(0.1f)); - _spriteBatch.Begin(samplerState: SamplerState.LinearWrap, transformMatrix: _viewportAdapter.GetScaleMatrix()); + _spriteBatch.Begin(samplerState: SamplerState.PointWrap, transformMatrix: _viewportAdapter.GetScaleMatrix()); _spriteBatch.Draw(_backgroundTexture, Vector2.Zero, sourceRectangle, Color.White); _spriteBatch.DrawString(_font, $"{_score}", Vector2.One, Color.White); _spriteBatch.End(); // entities - _spriteBatch.Begin(samplerState: SamplerState.LinearClamp, blendState: BlendState.AlphaBlend, transformMatrix: _camera.GetViewMatrix()); + _spriteBatch.Begin(samplerState: SamplerState.PointClamp, blendState: BlendState.AlphaBlend, transformMatrix: _camera.GetViewMatrix()); _entityManager.Draw(_spriteBatch); _spriteBatch.End(); diff --git a/Source/Demos/Demo.SpaceGame/Icon.bmp b/Source/Demos/Demo.SpaceGame/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 + + + + + + + + diff --git a/Source/Demos/Demo.SpaceGame/app.manifest b/Source/Demos/Demo.SpaceGame/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.SpaceGame/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.SpaceGame/packages.config b/Source/Demos/Demo.SpaceGame/packages.config index a5caee24..9b38dcf7 100644 --- a/Source/Demos/Demo.SpaceGame/packages.config +++ b/Source/Demos/Demo.SpaceGame/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_1.png b/Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_1.png deleted file mode 100644 index e46997235ba9eee18b2a56b27612502502aa5043..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26312 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

a-OL|Up{22888<6K4jv@ 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 Fe*tI(2fhFR diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_4.png b/Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_4.png deleted file mode 100644 index 7c1509172d3b32795c32b7f84c1ba216ef21e398..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38701 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%0D;-bpW7uk}%_=nXh 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 F{y)A<=lK8t diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_Sky.png b/Source/Demos/Demo.SpriteSheetAnimations/Content/Backgrounds/Hills_Sky.png deleted file mode 100644 index fe30ec9d6a1abb47c65ac1b0b421f7c33cede74a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23741 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 LAQA5Q$Flwck4uD& literal 88681 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 diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Sprites/motw.png b/Source/Demos/Demo.SpriteSheetAnimations/Content/Sprites/motw.png new file mode 100644 index 0000000000000000000000000000000000000000..08c0e6a158a52468e0648b64e0053ba1650b111d GIT binary patch literal 24060 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 mnrf=4rkZN1y|wn - - - - - - - - - - - - - - -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,1,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,1,2,1,1,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,1,2,1,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,1,1,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,1,1,1,2,1,1,2,1,0,0,0,0,0,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -1,1,2,2,2,2,1,1,0,0,2,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -1,1,2,2,2,2,2,2,1,0,0,0,0,0,2,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -1,1,1,2,2,2,2,2,1,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -1,1,1,1,2,2,2,2,2,2,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,1,0,0,1,1,1,2,2,2,0,0,0,0,0,2,0,0,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,1,0,0,2,1,2,2,2,2,2,0,0,0,0,0,0,0,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,1,0,2,2,1,1,0,2,2,0,0,0,0,0,0,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,1,1,2,2,2,1,1,0,2,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,1,2,2,2,2,2,1,2,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -1,2,2,2,1,2,1,2,2,2,1,1,2,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -1,1,1,2,2,1,1,1,2,2,2,1,1,2,2,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,1,1,0,1,0,1,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,1,1,1,1,0,1,1,2,2,1,1,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,1,1,1,2,1,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -0,0,0,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,0,0,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,0,1,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,1,1,1,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 - - - diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/level01.tmx b/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/level01.tmx index b908bad9..bfc3de64 100644 --- a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/level01.tmx +++ b/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/level01.tmx @@ -1,440 +1,440 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-atlas.json b/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-atlas.json deleted file mode 100644 index 57e46f5f..00000000 --- a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-atlas.json +++ /dev/null @@ -1,93 +0,0 @@ -{"frames": [ - -{ - "filename": "1.png", - "frame": {"x":2,"y":2,"w":32,"h":32}, - "rotated": false, - "trimmed": false, - "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, - "sourceSize": {"w":32,"h":32}, - "pivot": {"x":0.5,"y":0.5} -}, -{ - "filename": "2.png", - "frame": {"x":36,"y":2,"w":32,"h":32}, - "rotated": false, - "trimmed": false, - "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, - "sourceSize": {"w":32,"h":32}, - "pivot": {"x":0.5,"y":0.5} -}, -{ - "filename": "3.png", - "frame": {"x":70,"y":2,"w":32,"h":32}, - "rotated": false, - "trimmed": false, - "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, - "sourceSize": {"w":32,"h":32}, - "pivot": {"x":0.5,"y":0.5} -}, -{ - "filename": "4.png", - "frame": {"x":2,"y":36,"w":32,"h":32}, - "rotated": false, - "trimmed": false, - "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, - "sourceSize": {"w":32,"h":32}, - "pivot": {"x":0.5,"y":0.5} -}, -{ - "filename": "5.png", - "frame": {"x":36,"y":36,"w":32,"h":32}, - "rotated": false, - "trimmed": false, - "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, - "sourceSize": {"w":32,"h":32}, - "pivot": {"x":0.5,"y":0.5} -}, -{ - "filename": "6.png", - "frame": {"x":70,"y":36,"w":32,"h":32}, - "rotated": false, - "trimmed": false, - "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, - "sourceSize": {"w":32,"h":32}, - "pivot": {"x":0.5,"y":0.5} -}, -{ - "filename": "7.png", - "frame": {"x":2,"y":70,"w":32,"h":32}, - "rotated": false, - "trimmed": false, - "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, - "sourceSize": {"w":32,"h":32}, - "pivot": {"x":0.5,"y":0.5} -}, -{ - "filename": "8.png", - "frame": {"x":36,"y":70,"w":32,"h":32}, - "rotated": false, - "trimmed": false, - "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, - "sourceSize": {"w":32,"h":32}, - "pivot": {"x":0.5,"y":0.5} -}, -{ - "filename": "9.png", - "frame": {"x":70,"y":70,"w":32,"h":32}, - "rotated": false, - "trimmed": false, - "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, - "sourceSize": {"w":32,"h":32}, - "pivot": {"x":0.5,"y":0.5} -}], -"meta": { - "app": "http://www.codeandweb.com/texturepacker", - "version": "1.0", - "image": "test-tileset.png", - "format": "RGBA8888", - "size": {"w":104,"h":104}, - "scale": "1", - "smartupdate": "$TexturePacker:SmartUpdate:f5f4c00eb32fae603057f0d9dc5c7b73:ca39697f48630ecdea6d81a8fdc48cf6:c79a4cc8e4ba9657462e67dafcaf93d2$" -} -} diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-left-down.tmx b/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-left-down.tmx deleted file mode 100644 index 620cf08e..00000000 --- a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-left-down.tmx +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-left-up.tmx b/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-left-up.tmx deleted file mode 100644 index 58099f2a..00000000 --- a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-left-up.tmx +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-map1.tmx b/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-map1.tmx deleted file mode 100644 index 0f1a7411..00000000 --- a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-map1.tmx +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-right-down.tmx b/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-right-down.tmx deleted file mode 100644 index b1a7f197..00000000 --- a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-right-down.tmx +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-right-up.tmx b/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-right-up.tmx deleted file mode 100644 index 21f2f52b..00000000 --- a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset-right-up.tmx +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset.png b/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/test-tileset.png deleted file mode 100644 index 2aa1b715b604c9f4cc9168b2eb6a83f05f3a6bcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3166 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 v4.5 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true true @@ -23,6 +38,7 @@ 4 false false + 6 true @@ -42,54 +58,73 @@ - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\MonoGame.Framework.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\NVorbis.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\OpenTK.dll + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll True - + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + - - - - - - - - - - - - - - - - - + @@ -101,11 +136,34 @@ + + {587ce536-216f-41a1-b223-ae502c125b09} + MonoGame.Extended.Animations + + + {02562c6f-5bfb-467e-8a95-68b6ce2d635a} + MonoGame.Extended.Collisions + + + {9b3ab8a1-78aa-471a-afd0-b10b932115bc} + MonoGame.Extended.Graphics + + + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902} + MonoGame.Extended.Tiled + {41724c52-3d50-45bb-81eb-3c8a247eafd1} MonoGame.Extended + + + False + .NET Framework 3.5 SP1 + false + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.SpriteSheetAnimations/packages.config b/Source/Demos/Demo.SpriteSheetAnimations/packages.config index a5caee24..9b38dcf7 100644 --- a/Source/Demos/Demo.SpriteSheetAnimations/packages.config +++ b/Source/Demos/Demo.SpriteSheetAnimations/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Source/Demos/Demo.Sprites/Content/Content.mgcb b/Source/Demos/Demo.Sprites/Content/Content.mgcb index 68f2d62e..966855f3 100644 --- a/Source/Demos/Demo.Sprites/Content/Content.mgcb +++ b/Source/Demos/Demo.Sprites/Content/Content.mgcb @@ -22,6 +22,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:logo-square-128.png @@ -33,6 +34,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:axe.png @@ -44,6 +46,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:bg_sharbi.png @@ -55,6 +58,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:particle.png @@ -66,6 +70,19 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:spike_ball.png +#begin clipping-test.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:clipping-test.png + diff --git a/Source/Demos/Demo.Sprites/Content/clipping-test.png b/Source/Demos/Demo.Sprites/Content/clipping-test.png new file mode 100644 index 0000000000000000000000000000000000000000..052b34a03a83ba1419d57e431f0b3b58bd5ba645 GIT binary patch literal 1449 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEa{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXJ~A~99_l0z^dly z;uum9_x8r#ESYqf){ol*79J9RsN~8et{1byW8tN80UxJ1$I2)2HybK-gs3SlIMirT zn8*{^)GZ)W#H`6w*zsGWPe!XDzU2%P0N#9*V~&+Q8)(oewkzm%3N2u-Ex7Y8Cm#bMKYhx53PEQ+_>N{dBvNddJ%Zb>S=D zi^#2szoo73|6XO=Y^!&H>5&!-q^IvW@p;iai>BiHS9-r}nE$`V|JAQ^Ir%et*NfLw zp8Ni-`ev*d!``eV@m%`t+{`PQtLE?j7`>PO_Q4OHvw7mT+PA&Gz5g(OY5vDDn1h3- zn_l_(rnqUcerdvD{>r?q)ra?f`}|?Y-edMgdTs0WTdiO(je59zGvgKWU+ z;K#PVz4ZYxd|v~^Uu`|q`;y^{q|x1kM!!!h_8ziV(wn}k=FYw&dEPR<>;|uF_sgYy znt$K?>&*u*9qyK!F#LMRWPAOB=VJZuxAkx2cm54zzOef2o(H%2{BOHi5r#TX$8Udx1?BL&>BU(xobr4Vte! zj2MEiOiW=|wnF(NgHNFQB*qzw`c#+=TxC7k61uD=@f;8tRX8YvCy=?~O58)wMgFf` zWeox-mLcjfnG|9{}QnE%yczbpJJey?LIFexrrYW>#no?wYr z?3MOix*rQ9+LkfCIr}$3b*@T3OKo63@8i?=PBMI1y06mg`{Aiy3>H71wZ~vj%&vd0 zHXJo^( z)%PXyp_{ze(WQaQH-G>6`oY1}lH*SkPrh#6x1xPl51)N2`}LK=Z>PytaX#MkGV6n>J>FVdQ&MBb@0I`mRQUCw| literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.Sprites/Demo.Sprites.csproj b/Source/Demos/Demo.Sprites/Demo.Sprites.csproj index d5943dfd..b1e67e6c 100644 --- a/Source/Demos/Demo.Sprites/Demo.Sprites.csproj +++ b/Source/Demos/Demo.Sprites/Demo.Sprites.csproj @@ -23,6 +23,7 @@ 4 false false + 6 true @@ -41,31 +42,67 @@ - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\MonoGame.Framework.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\NVorbis.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\OpenTK.dll + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll True - + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + diff --git a/Source/Demos/Demo.Sprites/Game1.cs b/Source/Demos/Demo.Sprites/Game1.cs index 100fd329..d50767e5 100644 --- a/Source/Demos/Demo.Sprites/Game1.cs +++ b/Source/Demos/Demo.Sprites/Game1.cs @@ -2,7 +2,11 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; +using MonoGame.Extended; +using MonoGame.Extended.Shapes; using MonoGame.Extended.Sprites; +using MonoGame.Extended.TextureAtlases; + namespace Demo.Sprites { @@ -18,6 +22,8 @@ namespace Demo.Sprites private Sprite _spikeyBallSprite; private SpriteBatch _spriteBatch; + private TextureRegion2D _clippingTextureRegion; + public Game1() { _graphicsDeviceManager = new GraphicsDeviceManager(this); @@ -33,6 +39,9 @@ namespace Demo.Sprites _backgroundTexture = Content.Load("bg_sharbi"); + var testRegion = new TextureRegion2D(Content.Load("clipping-test")); + _clippingTextureRegion = new NinePatchRegion2D(testRegion, 16); + var axeTexture = Content.Load("axe"); _axeSprite = new Sprite(axeTexture) { @@ -63,6 +72,8 @@ namespace Demo.Sprites { } + private MouseState _previousMouseState; + protected override void Update(GameTime gameTime) { var deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds; @@ -71,9 +82,7 @@ namespace Demo.Sprites var mouseState = Mouse.GetState(); if (keyboardState.IsKeyDown(Keys.Escape)) - { Exit(); - } _axeSprite.Rotation = MathHelper.ToRadians(180) + MathHelper.PiOver2 * 0.8f * (float)Math.Sin(gameTime.TotalGameTime.TotalSeconds); @@ -84,17 +93,42 @@ namespace Demo.Sprites _particleSprite0.Color = Color.White * _particleOpacity; _particleSprite1.Color = Color.White * (1.0f - _particleOpacity); + var dx = mouseState.X - _previousMouseState.X; + var dy = mouseState.Y - _previousMouseState.Y; + + if (mouseState.LeftButton == ButtonState.Pressed) + { + _clippingRectangle.X += dx; + _clippingRectangle.Y += dy; + } + + if (mouseState.RightButton == ButtonState.Pressed) + { + _clippingRectangle.Width += dx; + _clippingRectangle.Height += dy; + } + + _previousMouseState = mouseState; + base.Update(gameTime); } + private Rectangle _clippingRectangle = new Rectangle(50 + 32, 250 - 32, 64, 128 + 64); + protected override void Draw(GameTime gameTime) { - _spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend); + _spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp); _spriteBatch.Draw(_backgroundTexture, new Rectangle(0, 0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height), Color.White); _spriteBatch.Draw(_axeSprite); _spriteBatch.Draw(_spikeyBallSprite); _spriteBatch.Draw(_particleSprite0); _spriteBatch.Draw(_particleSprite1); + + // clipping test + _spriteBatch.Draw(_clippingTextureRegion, new Rectangle(50, 50, 128, 128), Color.White, clippingRectangle: null); + _spriteBatch.Draw(_clippingTextureRegion, new Rectangle(50, 250, 512, 512), Color.White, clippingRectangle: _clippingRectangle); + _spriteBatch.DrawRectangle(_clippingRectangle.ToRectangleF(), Color.White); + _spriteBatch.End(); base.Draw(gameTime); diff --git a/Source/Demos/Demo.Sprites/Icon.bmp b/Source/Demos/Demo.Sprites/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 + + + + + + + + diff --git a/Source/Demos/Demo.Sprites/app.manifest b/Source/Demos/Demo.Sprites/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.Sprites/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.Sprites/packages.config b/Source/Demos/Demo.Sprites/packages.config index a5caee24..9b38dcf7 100644 --- a/Source/Demos/Demo.Sprites/packages.config +++ b/Source/Demos/Demo.Sprites/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Source/Demos/Demo.TiledMaps/Content/Content.mgcb b/Source/Demos/Demo.TiledMaps/Content/Content.mgcb index 59011fa4..9acf3958 100644 --- a/Source/Demos/Demo.TiledMaps/Content/Content.mgcb +++ b/Source/Demos/Demo.TiledMaps/Content/Content.mgcb @@ -11,6 +11,7 @@ #-------------------------------- References --------------------------------# /reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll +/reference:../../../MonoGame.Extended.Content.Pipeline.Tiled/bin/MonoGame.Extended.Content.Pipeline.Tiled.dll #---------------------------------- Content ---------------------------------# @@ -22,6 +23,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:monogame-extended-logo.png @@ -38,6 +40,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:free-tileset.png @@ -59,6 +62,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:montserrat-32_0.png @@ -70,6 +74,7 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:hills.png @@ -81,11 +86,85 @@ /processorParam:GenerateMipmaps=False /processorParam:PremultiplyAlpha=True /processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False /processorParam:TextureFormat=Color /build:rpg_maker_vx_rtp_tileset_by_telles0808.png -#begin untitled.tmx +#begin level02.tmx /importer:TiledMapImporter /processor:TiledMapProcessor -/build:untitled.tmx +/build:level02.tmx + +#begin isometric-tiles.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:isometric-tiles.png + +#begin level03.tmx +/importer:TiledMapImporter +/processor:TiledMapProcessor +/build:level03.tmx + +#begin level04.tmx +/importer:TiledMapImporter +/processor:TiledMapProcessor +/build:level04.tmx + +#begin level05.tmx +/importer:TiledMapImporter +/processor:TiledMapProcessor +/build:level05.tmx + +#begin L05TS1.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:L05TS1.png + +#begin alphacolortile.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,0,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:alphacolortile.png + +#begin non-uniform-tileset.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:non-uniform-tileset.png + +#begin level06.tmx +/importer:TiledMapImporter +/processor:TiledMapProcessor +/build:level06.tmx + +#begin level07.tmx +/importer:TiledMapImporter +/processor:TiledMapProcessor +/build:level07.tmx diff --git a/Source/Demos/Demo.TiledMaps/Content/L05TS1.png b/Source/Demos/Demo.TiledMaps/Content/L05TS1.png new file mode 100644 index 0000000000000000000000000000000000000000..5a4e902482f98400c6176ac054f9f12f30966548 GIT binary patch literal 18021 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 QQ(zc8UHx3vIVCg!0J_k6`Tzg` literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.TiledMaps/Content/Thumbs.db b/Source/Demos/Demo.TiledMaps/Content/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..5e649ae651e4f4c247d860ea3efa56772286576e GIT binary patch literal 9216 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

iv!}7j|D`W5}IXQnQp+fo;}JFl`#W< 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ƹ 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 QMgRZ+07*qoM6N<$f>b*gu>b%7 literal 124879 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%0D&t6g@m{>$`_sB7HWa>Rc?2ss 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 #3_y_NVb~7^X>c@Sh51M3Dy>$@3%&jy7HH2V8 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

  • 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 diff --git a/Source/Demos/Demo.TiledMaps/Content/isometric-tiles.png b/Source/Demos/Demo.TiledMaps/Content/isometric-tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3b70e4b58b305f575ca28df730b6acb92ac7f0 GIT binary patch literal 206951 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

    cOFZQV6hQoZKtB!8DFgKsGWzryN83 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

      y>&p7Z`41m0s{#*Bpo@V1W^x?v!SA}!rW$Ph)4 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 )M~u)foOm6ll8aYhQm4Qm7H0j; zQIlf91ZrqR5%%S(!}HlcZ{=0pIM%0WYMQ~QBI0?9T1}~MM=Lg=Z)JiFRYFlz6j|B= zx5j0Q3_&|65rp$Sj6E=UmvS#tzbRZRaS8Q}~>b2-r`U z9wiwY^Q26Zlf`_9R9aJI8q??lhZxQ|l8XnaG+$EF(+yWhT@6?RKSMpV{;sLOW;acW zuScwWZ3s!^A)nVC#iN5CrKf+qFBo^>eS$J$p#|uQS4%w0DsX7!{&L0w2Y1lYt^7vP zL%wp%cUa?FbfUcuy0P - + - + + + + + + @@ -22,426 +27,38 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + H4sIAAAAAAAAA2NgGAWjYBSMgoEBgljwYAJCWPBgAgPtPgAzvv49QAYAAA== - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + H4sIAAAAAAAAA2NgoC5gAWJWJMxGgVmMVHERKqCm+1io4iJMM0fdBwGg+Gcmw0xauw/kLiYg5iBgPkwdsZgcv2KzE+QuYvyPHlaEMMwsYv3FgUMMX/ww4lFLrPtI9RcxZpIbZsPdfQBmr3hmQAYAAA== - + + + H4sIAAAAAAAAA2NgGAWDDfACMR8Q82MRw4f5GcgDyGbz4xEj11xy9Y+CUTAKBjcAAB+IdqlABgAA + + + + + H4sIAAAAAAAAA2NgGLlAGIuYBJQWRROXpNAuKSxmSkPNlaXQbHKBzADZSwiAwgkUD9IE1MkhsUUYEHGHDsSp4Sg6A3S/44orUagcKB3J4VCDDtDTGy8DwwJ+BoYDfEAMZB8AshOIdyntAdBdC3ghNAM/hE4YWBehAqCbFiDzeQeZ+2gJAHOitUlABgAA + + + - + @@ -452,5 +69,15 @@ + + + + + + + + H4sIAAAAAAAAA2NgGAWjYBSMglEwCkgHADV9EcVABgAA + + diff --git a/Source/Demos/Demo.TiledMaps/Content/level02.tmx b/Source/Demos/Demo.TiledMaps/Content/level02.tmx new file mode 100644 index 00000000..06d989b5 --- /dev/null +++ b/Source/Demos/Demo.TiledMaps/Content/level02.tmx @@ -0,0 +1,529 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Demos/Demo.TiledMaps/Content/level03.tmx b/Source/Demos/Demo.TiledMaps/Content/level03.tmx new file mode 100644 index 00000000..b81b6e56 --- /dev/null +++ b/Source/Demos/Demo.TiledMaps/Content/level03.tmx @@ -0,0 +1,62 @@ + + + + + + + +71,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327 + + + + +1157,0,0,0,0,1125,0,0,1125,0, +0,0,1125,0,0,1157,0,0,1157,0, +0,0,1157,0,0,0,0,0,0,0, +0,0,0,0,0,0,1127,1125,0,0, +1127,0,0,0,1125,0,0,1157,0,1125, +483,483,483,483,1157,0,0,0,0,1157, +483,0,0,0,1127,0,1127,0,0,0, +0,1127,483,0,0,0,0,0,0,0, +483,483,1127,483,483,483,0,0,1127,0, +483,483,483,483,483,0,0,0,1157,0 + + + + +0,0,0,0,0,0,0,0,0,0, +1091,0,0,0,0,0,0,0,0,0, +0,0,1477,1478,0,0,1091,0,0,1091, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,1477,1478,0, +1091,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,1091,0,0,0,1091,0,0, +1091,0,0,0,0,0,0,0,0,0, +1478,0,0,0,1477,1478,0,0,0,0 + + + + +0,0,0,0,1414,0,0,0,0,0, +1414,0,0,1414,1446,0,0,0,0,0, +1446,0,0,1446,0,0,1414,0,0,0, +0,0,1414,0,0,0,1446,0,0,0, +0,1414,1446,0,0,0,0,0,0,1414, +0,1446,0,0,0,0,0,0,0,1446, +0,0,1414,0,0,0,0,0,0,0, +0,0,1446,0,0,1414,0,0,1414,0, +0,1414,0,0,0,1446,0,0,1446,0, +0,1446,0,0,0,0,0,0,0,0 + + + diff --git a/Source/Demos/Demo.TiledMaps/Content/level04.tmx b/Source/Demos/Demo.TiledMaps/Content/level04.tmx new file mode 100644 index 00000000..85d6f2d3 --- /dev/null +++ b/Source/Demos/Demo.TiledMaps/Content/level04.tmx @@ -0,0 +1,82 @@ + + + + + + + + + + + +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +71,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,67,67,67,327,327,327,67,67,67,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,67,327,67,327,327,327,67,327,67,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67, +327,327,327,327,327,327,327,67,327,67,327,327,327,67,327,67,327,327,327,327,327,327,327,327,327,327,327,327,327,327, +327,327,327,327,327,327,327,67,67,67,327,327,327,67,67,67,327,327,327,327,327,327,327,327,327,327,327,327,327,327 + + + + +1975,1976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1977,1978, +2007,2008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2009,2010, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2017,0,0,0,0,0, +0,0,0,0,0,1881,0,0,0,0,0,1883,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,1913,0,0,0,0,0,1915,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1882,0,0,0,0,0,1884,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1911,1912,0,0,0,0,0,0,1914,0,0,0,0,0,1916,0,0,0,0,0,0,0,0,0,0,0,0,0,1979,1980, +1943,1944,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2011,2012 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,578,578,578,0,578,578,578,0,0,578,578,578,0,578,0,0,578,0,578,578,578,0,578,578,578,0,0,0, +0,0,0,578,0,0,578,0,578,0,0,578,0,578,0,578,578,0,578,0,578,0,0,0,578,0,578,0,0,0, +0,0,0,578,0,0,578,578,578,0,0,578,578,578,0,578,0,578,578,0,578,578,578,0,578,578,578,0,0,0, +0,0,0,578,0,0,578,0,578,0,0,578,0,578,0,578,0,578,578,0,0,0,578,0,578,0,0,0,0,0, +0,0,0,578,0,0,578,0,0,578,0,578,0,578,0,578,0,0,578,0,578,578,578,0,578,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,578,578,578,0,578,578,578,0,0,578,578,578,0,578,0,0,578,0,578,578,578,0,0,0,0,0,0,0, +0,0,578,0,578,0,578,0,578,0,0,578,0,0,0,578,578,0,578,0,0,578,0,0,0,0,0,0,0,0, +0,0,578,578,578,0,578,578,578,0,0,578,578,578,0,578,0,578,578,0,0,578,0,0,0,0,0,0,0,0, +0,0,578,0,578,0,578,0,578,0,0,578,0,0,0,578,0,578,578,0,0,578,0,0,0,0,0,0,0,0, +0,0,578,0,578,0,578,0,0,578,0,578,578,578,0,578,0,0,578,0,0,578,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + diff --git a/Source/Demos/Demo.TiledMaps/Content/level05.tmx b/Source/Demos/Demo.TiledMaps/Content/level05.tmx new file mode 100644 index 00000000..80a7f5c7 --- /dev/null +++ b/Source/Demos/Demo.TiledMaps/Content/level05.tmx @@ -0,0 +1,20 @@ + + + + + + + +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,1,0,0,0,0, +0,0,0,0,2,0,2,0,0,0, +0,0,0,1,0,1,0,3,0,0, +0,0,3,0,3,0,3,0,0,0, +0,2,0,1,0,2,0,0,0,0, +3,0,3,0,2,0,0,0,0,0, +0,2,0,1,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0 + + + diff --git a/Source/Demos/Demo.TiledMaps/Content/level06.tmx b/Source/Demos/Demo.TiledMaps/Content/level06.tmx new file mode 100644 index 00000000..fe1d5bf8 --- /dev/null +++ b/Source/Demos/Demo.TiledMaps/Content/level06.tmx @@ -0,0 +1,54 @@ + + + + + + + +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, +19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36, +37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72, +73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108, +109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126, +127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144, +145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162, +163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180, +181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198, +199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216, +217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234, +235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252, +253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270, +271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288, +289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306, +307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324, +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, +19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36, +37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72, +73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108, +109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126, +127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144, +145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162, +163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180, +181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198, +199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216, +217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234, +235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252, +253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270, +271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288, +289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306, +307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324 + + + + + + + + + + + diff --git a/Source/Demos/Demo.TiledMaps/Content/level07.tmx b/Source/Demos/Demo.TiledMaps/Content/level07.tmx new file mode 100644 index 00000000..edf8a69c --- /dev/null +++ b/Source/Demos/Demo.TiledMaps/Content/level07.tmx @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + diff --git a/Source/Demos/Demo.TiledMaps/Content/non-uniform-tileset.png b/Source/Demos/Demo.TiledMaps/Content/non-uniform-tileset.png new file mode 100644 index 0000000000000000000000000000000000000000..981ff74d099d5922c703adbfae45a7a15efa469f GIT binary patch literal 14886 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 literal 0 HcmV?d00001 diff --git a/Source/Demos/Demo.TiledMaps/Content/untitled.tmx b/Source/Demos/Demo.TiledMaps/Content/untitled.tmx deleted file mode 100644 index 36c291bb..00000000 --- a/Source/Demos/Demo.TiledMaps/Content/untitled.tmx +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - QggAAEIIAACDCAAAQggAAEIIAABCCAAAgwgAAEIIAACDCAAAgwgAAEMIAACCCAAAgwgAAEMIAABCCAAAgwgAAIMIAACCCAAAQggAAEIIAABDCAAAQggAAEQIAAABCgAAAgoAAMIJAADECQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABDCAAAQwgAAIMIAABDCAAAgwgAAIIIAABDCAAAgwgAAEIIAABDCAAAQwgAAIMIAABCCAAAgggAAIIIAABCCAAAgggAAIIIAACCCAAAQwgAAEMIAACDCAAAhAgAAMEJAADCCQAAAwoAAMQJAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAEMIAABCCAAAgwgAAEMIAACDCAAAgggAAEIIAACCCAAAgggAAIMIAACCCAAAgggAAIMIAABCCAAAgggAAEMIAABCCAAAQwgAAEIIAABDCAAAgggAAIMIAACECAAAwQkAAAIKAAADCgAAxAkAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAAQggAAEIIAACCCAAAQwgAAEIIAABDCAAAgwgAAEIIAABDCAAAgwgAAEIIAACCCAAAgwgAAIIIAABCCAAAgggAAIMIAABCCAAAQwgAAEIIAACCCAAAQggAAEQIAAABCgAAAwoAAMMJAAAECgAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAADDCAAAwwgAAMMIAADDCAAAwwgAAMMIAADDCAAAwwgAAMMIAADCCAAAwwgAAMMIAADDCAAAwggAAMIIAADCCAAAwggAAMIIAADDCAAAwwgAAMMIAADDCAAAxAgAAMEJAADCCQAAwgkAAMQJAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAIIJAACCCQAAggkAAIIJAACCCQAAgwkAAIIJAACDCQAAggkAAIIJAACCCQAAggkAAIMJAACDCQAAgwkAAIMJAACCCQAAgwkAAIMJAACCCQAAgwkAAIMJAACDCQAAAwkAAMMJAAACCgAABAkAAAIJAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAAwwkAAMMJAADCCQAAwwkAAMMJAADDCQAAAwoAAMIJAAACCgAAAgoAAMIJAADDCQAAAgoAAMMJAADCCQAAAwoAAMMJAADDCQAAAwoAAAIKAAACCgAAwgkAAAMKAADDCQAAAwoAAMIJAAACCgAABAoAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABCCgAAQgoAAEMKAABDCgAAQwoAAEMKAABCCgAAQwoAAEIKAABDCgAAQgoAAEMKAABCCgAAQwoAAEIKAABCCgAAQgoAAEIKAABCCgAAQwoAAEMKAABCCgAAQwoAAEIKAABDCgAAQwkAAAIKAADECQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAAMIAAADCAAAAggAAAMIAAADCAAAAggAAAMIAAADCAAAAwgAAAMIAAADCAAAAwgAAAIIAAADCAAAAggAAAMIAAADCAAAAwgAAAMIAAACCAAAAggAAAMIAAACCAAAAwgAAAQIAADBCQAAwwkAAMQJAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAAgggAAEMIAABCCAAAQwgAAIMIAABCCAAAgggAAIMIAABDCAAAgwgAAEIIAACCCAAAQwgAAIMIAACCCAAAgggAAEMIAABCCAAAgwgAAEIIAACCCAAAQwgAAEIIAACCCAAAhAgAAAEKAADCCQAABAoAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABCCAAAgggAAIIIAACCCAAAgggAAEMIAACCCAAAQggAAEIIAACDCAAAgwgAAIIIAABCCAAAQggAAEMIAABCCAAAQwgAAIMIAABCCAAAQwgAAEMIAABDCAAAQwgAAEIIAACECAAAAQoAAMMJAAAECQAAhAkAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAEMIAACCCAAAgggAAIMIAACCCAAAgwgAAEIIAACDCAAAQwgAAIMIAABDCAAAQwgAAIIIAACCCAAAQggAAEMIAACCCAAAQggAAIIIAABCCAAAQggAAEMIAACDCAAAgggAAEQIAABBCgAAQwkAAMIJAAAECgAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAAQwgAAEMIAABDCAAAQwgAAEMIAABCCAAAgggAAEIIAACDCAAAQwgAAEIIAACCCAAAQggAAIIIAACDCAAAgggAAIMIAACDCAAAgwgAAIMIAABDCAAAgwgAAIMIAACCCAAAhAcAAAQIAAABCgAAAgoAAAQKAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABCCAAAQggAAIIIAABCCAAAQwgAAEMIAABDCAAAgwgAAEIIAABDCAAAgwgAAIIIAACCCAAAQggAAEMIAACDCAAAgwgAAEMIAACDCAAAgwgAAIMIAABCCAAAQggAAIMIAACDCAAARAgAAAEKAADCCQAAxAkAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAEMIAACDCAAAQwgAAEIIAABCCAAAgwgAAEMIAACDCAAAQwgAAIIIAABCCAAAQwgAAIIIAABCCAAAQggAAEMIAABDCAAAQwgAAEMIAACDCAAAQggAAIMIAABCCAAAQwgAAEMIAABECAAAQQoAAEMJAADECQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAAgggAAEIIAACDCAAAgwgAAEMIAACCCAAAQwgAAIIIAACDCAAAgggAAEIIAACDCAAAgwgAAIMIAACDCAAAgwgAAIMIAACDCAAAQggAAEMIAABCCAAAgggAAIIIAACCCAAAgggAAIQHAACCBwAAAQoAAAQKAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABCCAAAQggAAEIIAACDCAAAgggAAIMIAABDCAAAQggAAIIIAABCCAAAQwgAAEMIAABCCAAAgwgAAEIIAACCCAAAQwgAAEMIAACCCAAAgwgAAIMIAABCCAAAQggAAIIIAACDCAAAQwgAAEQIAADBCQAAxAkAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAEMIAABDCAAAQwgAAIIIAACCCAAAQggAAEIIAACDCAAAgwgAAEIIAACDCAAAgggAAEIIAACCCAAAgwgAAEIIAACDCAAAQwgAAEMIAABCCAAAgwgAAIMIAACDCAAAgggAAEIIAABDCAAAhAgAAAEKAAAECgAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAAgggAAEIIAACCCAAAQwgAAEIIAABDCAAAQwgAAEMIAACCCAAAgwgAAIMIAACCCAAAgwgAAIMIAACDCAAAgggAAEIIAABDCAAAgwgAAEMIAACCCAAAgggAAEMIAACDCAAAQggAAEIIAACECAAAAQoAAAQKAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABCCAAAQwgAAEMIAABDCAAAgggAAIMIAACDCAAAgggAAEMIAACCCAAAQwgAAIMIAACCCAAAQwgAAIIIAACCCAAAQggAAIIIAACCCAAAgggAAIMIAACDCAAAQwgAAIMIAABCCAAAQwgAAEQIAADBCQAAxAkAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAIIIAABCCAAAQggAAEIIAABCCAAAgwgAAIMIAACCCAAAgwgAAIMIAACCCAAAgggAAIIIAABCCAAAQggAAEIIAABDCAAAgggAAIIIAACDCAAAgggAAEMIAABCCAAAgggAAEIIAABDCAAAhAgAAMEJAAAECgAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAAQggAAEIIAABDCAAAQggAAEIIAACCCAAAgggAAEIIAABDCAAAQggAAEMIAACDCAAAgggAAEMIAACDCAAAQwgAAEIIAABDCAAAgggAAIMIAACCCAAAgggAAEMIAACDCAAAgwgAAIMIAABECAAAAQoAAMQJAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABDCAAAQwgAAEIIAACCCAAAQggAAIMIAACCCAAAQwgAAIMIAABCCAAAQwgAAEIIAACCCAAAQwgAAIMIAABCCAAAgggAAIMIAACCCAAAQggAAIMIAABCCAAAQwgAAIMIAABDCAAAgwgAAIQIAADBCQAABAoAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAEIIAABDCAAAQwgAAIMIAACDCAAAgwgAAIIIAACCCAAAgggAAIIIAACCCAAAQggAAIMIAACCCAAAgggAAIIIAABCCAAAQwgAAEMIAABCCAAAQggAAEIIAACCCAAAQggAAEMIAACDCAAAhAgAAAEKAAAECgAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAAQggAAIMIAABCCAAAQggAAEMIAABDCAAAQwgAAEIIAABDCAAAQwgAAIIIAABDCAAAgggAAIMIAABCCAAAgggAAIMIAACCCAAAQwgAAEMIAABDCAAAgggAAIMIAABCCAAAQggAAIMIAABECAAAAQoAAAQJAACECQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABCCAAAgggAAEIIAABCCAAAQwgAAIIIAACCCAAAgwgAAIMIAABDCAAAQwgAAEIIAACDCAAAgwgAAIIIAABCCAAAgggAAEMIAABCCAAAQggAAIIIAABCCAAAQggAAEIIAABDCAAAgggAAIQIAADBCQAAAgoAAAQKAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAEIIAACDCAAAgggAAIIIAABDCAAAgggAAIMIAACCCAAAQggAAEMIAACDCAAAQggAAIIIAABDCAAAgggAAIMIAABCCAAAQwgAAIIIAACDCAAAQggAAIIIAACDCAAAgggAAIIIAABCCAAAhAgAAMEJAAADCgAAxAkAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAAgwgAAEMIAACCCAAAQggAAIIIAABCCAAAgwgAAEMIAABCCAAAgwgAAIIIAABDCAAAgggAAIMIAABCCAAAQggAAIIIAACDCAAAQwgAAIMIAABDCAAAgwgAAIIIAACCCAAAQggAAIMIAACECAAAwQkAAMMJAAAECgAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAADDBwAAgggAAEIIAABDCAAAQwgAAIIIAABDCAAAgwgAAIIIAACDCAAAxAcAAMMIAADCCAAAwwgAAMIIAADCCAAAwggAAMMHAABDCAAAQwgAAEIIAACCCAAAQggAAIIIAACCCAAAQggAAEQIAAABCgAAwwkAAAQJAAACCQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAMEIAADCCAAAwwcAAEMIAABCCAAAQwgAAIIIAABCCAAAxAcAAMIIAADECAAAAQkAAIMJAACCCQAAggkAAIIJAACECQAAwQcAAMMIAADCCAAAwwcAAIMIAACDCAAAQwgAAIMIAABCCAAARAgAAMEJAADCCQAAwwkAAMQJAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAAggkAAAIJAADBBwAAwggAAMMIAADCCAAAwwgAAMIIAADCBwAAgQkAAIMJAAADCQAAwwkAAMMJAADDCQAAAwoAAAQJAACCCQAAgwkAAIQJAADBBwAAwwgAAMIIAADCCAAAwggAAMMIAADCBwAAwQkAAAIKAAACCgAAxAkAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAADCCQAABAkAAIIJAACDCQAAggkAAIMJAACDCQAAgwkAAIIJAAADCQAAAgoAAAIKAAADCgAAwwkAAMMJAAADCgAAAwoAAAMKAADDCQAABAkAAIIJAACCCQAAgwkAAIIJAACCCQAAggkAAIMJAAADCQAAAwoAAMIJAADECQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAEIKAABDCQAAwgkAAMIJAADCCQAAwwkAAMIJAADDCQAAAwoAAMIJAADDCQAAAgoAAAIKAADCCQAAwgkAAMMJAADDCQAAAwoAAAIKAADDCQAAwgkAAMIJAADDCQAAAwoAAMMJAADCCQAAAwoAAAMKAAACCgAARAkAAEIJAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAEEJAABCCgAAQgoAAEIKAABDCgAAQwoAAEMKAABDCgAAQwoAAEMKAABDCgAAQwoAAEIKAABCCgAAQwoAAEMKAABCCgAAQgoAAEIKAABDCgAAQwoAAEMKAABCCgAAQwoAAEMKAABCCgAAQgoAAEIKAABECgAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAE0BAABNAQAATQEAAA== - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI8RAACQEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzxEAANARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkRAACKEQAAAAAAAAAAAAAAAAAAAAAAAIkRAACKEQAAAAAAAAAAAAAAAAAAiREAAIoRAAAAAAAAAAAAAAAAAAAAAAAAiREAAIoRAAAAAAAAAAAAAIkRAACKEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyREAAMoRAAAAAAAAAAAAAAAAAAAAAAAAyREAAMoRAAAAAAAAAAAAAAAAAADJEQAAyhEAAAAAAAAAAAAAAAAAAAAAAADJEQAAyhEAAAAAAAAAAAAAyREAAMoRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEgAAChIAAAAAAAAAAAAAAAAAAAAAAAAJEgAAChIAAAAAAAAAAAAAAAAAAAkSAAAKEgAAAAAAAAAAAAAAAAAAAAAAAAkSAAAKEgAACxIAAAwSAAAJEgAAChIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkSAABKEgAAAAAAAAAAAAAAAAAAAAAAAEkSAABKEgAAAAAAAAAAAAAAAAAASRIAAEoSAAAAAAAAAAAAAAAAAAAAAAAASRIAAEoSAABLEgAATBIAAEkSAABKEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI8RAACQEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzxEAANARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPEQAAkBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8RAADQEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - diff --git a/Source/Demos/Demo.TiledMaps/CustomEffect.cs b/Source/Demos/Demo.TiledMaps/CustomEffect.cs new file mode 100644 index 00000000..e4dd73b1 --- /dev/null +++ b/Source/Demos/Demo.TiledMaps/CustomEffect.cs @@ -0,0 +1,24 @@ +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Graphics.Effects; + +namespace Demo.TiledMaps +{ + public class CustomEffect : DefaultEffect, ITiledMapEffect + { + public CustomEffect(GraphicsDevice graphicsDevice) + : base(graphicsDevice) + { + } + + public CustomEffect(GraphicsDevice graphicsDevice, byte[] byteCode) + : base(graphicsDevice, byteCode) + { + + } + + public CustomEffect(Effect cloneSource) + : base(cloneSource) + { + } + } +} diff --git a/Source/Demos/Demo.TiledMaps/Demo.TiledMaps.csproj b/Source/Demos/Demo.TiledMaps/Demo.TiledMaps.csproj index 8620d73b..465297de 100644 --- a/Source/Demos/Demo.TiledMaps/Demo.TiledMaps.csproj +++ b/Source/Demos/Demo.TiledMaps/Demo.TiledMaps.csproj @@ -12,6 +12,21 @@ DesktopGL v4.5 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true true @@ -23,6 +38,8 @@ 4 false false + 6 + x86 true @@ -36,40 +53,88 @@ Icon.ico + - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\MonoGame.Framework.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\NVorbis.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\OpenTK.dll + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll True - + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + - + + Designer + + + Designer + + + + + + - + @@ -81,11 +146,26 @@ + + {9b3ab8a1-78aa-471a-afd0-b10b932115bc} + MonoGame.Extended.Graphics + + + {07b2ade2-73e3-41c4-aea1-d5566a5ab902} + MonoGame.Extended.Tiled + {41724c52-3d50-45bb-81eb-3c8a247eafd1} MonoGame.Extended + + + False + .NET Framework 3.5 SP1 + false + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.TiledMaps/packages.config b/Source/Demos/Demo.TiledMaps/packages.config index a5caee24..9b38dcf7 100644 --- a/Source/Demos/Demo.TiledMaps/packages.config +++ b/Source/Demos/Demo.TiledMaps/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Source/Demos/Demo.ViewportAdapters/Demo.ViewportAdapters.csproj b/Source/Demos/Demo.ViewportAdapters/Demo.ViewportAdapters.csproj index 13a199bf..59bd78bd 100644 --- a/Source/Demos/Demo.ViewportAdapters/Demo.ViewportAdapters.csproj +++ b/Source/Demos/Demo.ViewportAdapters/Demo.ViewportAdapters.csproj @@ -23,6 +23,8 @@ 4 false false + x64 + 6 true @@ -41,29 +43,64 @@ - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\MonoGame.Framework.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\NVorbis.dll - True - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.5.0.1678\lib\net40\OpenTK.dll + + ..\..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll True - + + + libopenal.1.dylib + PreserveNewest + + + libSDL2-2.0.0.dylib + PreserveNewest + + + x64\SDL2.dll + PreserveNewest + + + x64\soft_oal.dll + PreserveNewest + + + x86\SDL2.dll + PreserveNewest + + + x86\soft_oal.dll + PreserveNewest + + + + + x64\libopenal.so.1 + PreserveNewest + + + x64\libSDL2-2.0.so.0 + PreserveNewest + + + x86\libopenal.so.1 + PreserveNewest + + + x86\libSDL2-2.0.so.0 + PreserveNewest + + diff --git a/Source/Demos/Demo.ViewportAdapters/Game1.cs b/Source/Demos/Demo.ViewportAdapters/Game1.cs index 925efbb4..792e4fd0 100644 --- a/Source/Demos/Demo.ViewportAdapters/Game1.cs +++ b/Source/Demos/Demo.ViewportAdapters/Game1.cs @@ -48,7 +48,7 @@ namespace Demo.ViewportAdapters // the boxing viewport adapter uses letterboxing or pillarboxing to maintain aspect ratio // it's a little more complicated and needs to listen to the window client size changing event - _boxingViewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480); + _boxingViewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480, 88, 70); // typically you'll only ever want to use one viewport adapter for a game, but in this sample we'll be // switching between them. @@ -109,17 +109,17 @@ namespace Demo.ViewportAdapters _spriteBatch.Begin(transformMatrix: _currentViewportAdapter.GetScaleMatrix()); _spriteBatch.Draw(_backgroundTexture, destinationRectangle, Color.White); - _spriteBatch.DrawString(_bitmapFont, $"Press D: {typeof (DefaultViewportAdapter).Name}", new Vector2(5, 5), Color.White); + _spriteBatch.DrawString(_bitmapFont, $"Press D: {typeof (DefaultViewportAdapter).Name}", new Vector2(49, 40), Color.White); - _spriteBatch.DrawString(_bitmapFont, $"Press S: {typeof (ScalingViewportAdapter).Name}", new Vector2(5, 5 + _bitmapFont.LineHeight * 1), Color.White); + _spriteBatch.DrawString(_bitmapFont, $"Press S: {typeof (ScalingViewportAdapter).Name}", new Vector2(49, 40 + _bitmapFont.LineHeight * 1), Color.White); - _spriteBatch.DrawString(_bitmapFont, $"Press B: {typeof (BoxingViewportAdapter).Name}", new Vector2(5, 5 + _bitmapFont.LineHeight * 2), Color.White); + _spriteBatch.DrawString(_bitmapFont, $"Press B: {typeof (BoxingViewportAdapter).Name}", new Vector2(49, 40 + _bitmapFont.LineHeight * 2), Color.White); - _spriteBatch.DrawString(_bitmapFont, $"Current: {_currentViewportAdapter.GetType().Name}", new Vector2(5, 5 + _bitmapFont.LineHeight * 4), Color.Black); + _spriteBatch.DrawString(_bitmapFont, $"Current: {_currentViewportAdapter.GetType().Name}", new Vector2(49, 40 + _bitmapFont.LineHeight * 4), Color.Black); - _spriteBatch.DrawString(_bitmapFont, @"Try resizing the window", new Vector2(5, 5 + _bitmapFont.LineHeight * 6), Color.Black); + _spriteBatch.DrawString(_bitmapFont, @"Try resizing the window", new Vector2(49, 40 + _bitmapFont.LineHeight * 6), Color.Black); - _spriteBatch.DrawString(_bitmapFont, $"Mouse: {_mousePosition}", new Vector2(5, 5 + _bitmapFont.LineHeight * 8), Color.Black); + _spriteBatch.DrawString(_bitmapFont, $"Mouse: {_mousePosition}", new Vector2(49, 40 + _bitmapFont.LineHeight * 8), Color.Black); _spriteBatch.End(); diff --git a/Source/Demos/Demo.ViewportAdapters/Icon.bmp b/Source/Demos/Demo.ViewportAdapters/Icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b481653e241818d2894e4ef33234eaff9aad701 GIT binary patch literal 262282 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 + + + + + + + + diff --git a/Source/Demos/Demo.ViewportAdapters/app.manifest b/Source/Demos/Demo.ViewportAdapters/app.manifest new file mode 100644 index 00000000..d13ebce0 --- /dev/null +++ b/Source/Demos/Demo.ViewportAdapters/app.manifest @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true/pm + + + + diff --git a/Source/Demos/Demo.ViewportAdapters/packages.config b/Source/Demos/Demo.ViewportAdapters/packages.config index a5caee24..9b38dcf7 100644 --- a/Source/Demos/Demo.ViewportAdapters/packages.config +++ b/Source/Demos/Demo.ViewportAdapters/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/ProjectTemplates/MonoGame.Extended Demo Project.zip b/Source/Demos/DemoProjectTemplate/MonoGame.Extended Demo Project.zip similarity index 100% rename from ProjectTemplates/MonoGame.Extended Demo Project.zip rename to Source/Demos/DemoProjectTemplate/MonoGame.Extended Demo Project.zip diff --git a/ProjectTemplates/README.md b/Source/Demos/DemoProjectTemplate/README.md similarity index 100% rename from ProjectTemplates/README.md rename to Source/Demos/DemoProjectTemplate/README.md diff --git a/Source/Demos/README.md b/Source/Demos/README.md new file mode 100644 index 00000000..dd4690d1 --- /dev/null +++ b/Source/Demos/README.md @@ -0,0 +1,9 @@ +# Demos + +Each of these demos are setup like the MonoGame 3.6 Cross Platform Desktop Project template. + +This means you'll *need* to have MonoGame 3.6 installed on your machine because some of the +files are expected to be on your machine. + +To run each demo in Visual Studio right click the project and select 'Set as StartUp Project' +then run it as usual. diff --git a/Source/MonoGame.Extended.Animations.nuspec b/Source/MonoGame.Extended.Animations.nuspec new file mode 100644 index 00000000..3785e398 --- /dev/null +++ b/Source/MonoGame.Extended.Animations.nuspec @@ -0,0 +1,34 @@ + + + + + MonoGame.Extended.Animations + $version$ + + Animations to make MonoGame more awesome. + + Dylan Wilson + MonoGame.Extended.Animations + Craftwork Games + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE + https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png + false + + Copyright 2017 - Craftwork Games + monogame extended animation sprite sheet + + + + + + + + + + + + + + + diff --git a/Source/MonoGame.Extended.Animations/AnimatedSprite.cs b/Source/MonoGame.Extended.Animations/AnimatedSprite.cs new file mode 100644 index 00000000..4cd6f9a0 --- /dev/null +++ b/Source/MonoGame.Extended.Animations/AnimatedSprite.cs @@ -0,0 +1,47 @@ +using System; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Animations.SpriteSheets; +using MonoGame.Extended.Sprites; + +namespace MonoGame.Extended.Animations +{ + public class AnimatedSprite : Sprite + { + private readonly SpriteSheetAnimationFactory _animationFactory; + private SpriteSheetAnimation _currentAnimation; + + public AnimatedSprite(SpriteSheetAnimationFactory animationFactory, string playAnimation = null) + : base(animationFactory.Frames[0]) + { + _animationFactory = animationFactory; + + if (playAnimation != null) + Play(playAnimation); + } + + public SpriteSheetAnimation Play(string name, Action onCompleted = null) + { + if ((_currentAnimation == null) || _currentAnimation.IsComplete || (_currentAnimation.Name != name)) + { + _currentAnimation = _animationFactory.Create(name); + _currentAnimation.OnCompleted = onCompleted; + } + + return _currentAnimation; + } + + public void Update(float deltaTime) + { + if ((_currentAnimation != null) && !_currentAnimation.IsComplete) + { + _currentAnimation.Update(deltaTime); + TextureRegion = _currentAnimation.CurrentFrame; + } + } + + public void Update(GameTime gameTime) + { + Update(gameTime.GetElapsedSeconds()); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Animations/Animation.cs b/Source/MonoGame.Extended.Animations/Animation.cs new file mode 100644 index 00000000..4c7a1467 --- /dev/null +++ b/Source/MonoGame.Extended.Animations/Animation.cs @@ -0,0 +1,86 @@ +using System; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Animations +{ + public abstract class Animation : IUpdate, IDisposable + { + private readonly bool _disposeOnComplete; + private readonly Action _onCompleteAction; + private bool _isComplete; + + protected Animation(Action onCompleteAction, bool disposeOnComplete) + { + _onCompleteAction = onCompleteAction; + _disposeOnComplete = disposeOnComplete; + IsPaused = false; + } + + public bool IsComplete + { + get { return _isComplete; } + protected set + { + if (_isComplete != value) + { + _isComplete = value; + + if (_isComplete) + { + _onCompleteAction?.Invoke(); + + if (_disposeOnComplete) + Dispose(); + } + } + } + } + + public bool IsDisposed { get; private set; } + public bool IsPlaying => !IsPaused && !IsComplete; + public bool IsPaused { get; private set; } + public float CurrentTime { get; protected set; } + + public virtual void Dispose() + { + IsDisposed = true; + } + + public void Update(GameTime gameTime) + { + Update(gameTime.GetElapsedSeconds()); + } + + public void Play() + { + IsPaused = false; + } + + public void Pause() + { + IsPaused = true; + } + + public void Stop() + { + Pause(); + Rewind(); + } + + public void Rewind() + { + CurrentTime = 0; + } + + protected abstract bool OnUpdate(float deltaTime); + + public void Update(float deltaTime) + { + if (!IsPlaying) + return; + + CurrentTime += deltaTime; + IsComplete = OnUpdate(deltaTime); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Animations/AnimationComponent.cs b/Source/MonoGame.Extended.Animations/AnimationComponent.cs new file mode 100644 index 00000000..79ed8c0b --- /dev/null +++ b/Source/MonoGame.Extended.Animations/AnimationComponent.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Animations +{ + public class AnimationComponent : GameComponent + { + public AnimationComponent(Game game) + : base(game) + { + Animations = new List(); + } + + public List Animations { get; } + + public override void Update(GameTime gameTime) + { + base.Update(gameTime); + + for (var i = Animations.Count - 1; i >= 0; i--) + { + var animation = Animations[i]; + animation.Update(gameTime); + } + + Animations.RemoveAll(a => a.IsDisposed); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Animations/MonoGame.Extended.Animations.csproj b/Source/MonoGame.Extended.Animations/MonoGame.Extended.Animations.csproj new file mode 100644 index 00000000..54777ac0 --- /dev/null +++ b/Source/MonoGame.Extended.Animations/MonoGame.Extended.Animations.csproj @@ -0,0 +1,61 @@ + + + + + 10.0 + Debug + AnyCPU + {587CE536-216F-41A1-B223-AE502C125B09} + Library + MonoGame.Extended.Animations + MonoGame.Extended.Animations + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile111 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + + + + + + + + + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll + + + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Animations/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Animations/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..09468499 --- /dev/null +++ b/Source/MonoGame.Extended.Animations/Properties/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System.Resources; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Animations")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Animations")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimation.cs b/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimation.cs new file mode 100644 index 00000000..06c850ec --- /dev/null +++ b/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimation.cs @@ -0,0 +1,102 @@ +using System; +using System.Linq; +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Animations.SpriteSheets +{ + public class SpriteSheetAnimation : Animation + { + public const float DefaultFrameDuration = 0.2f; + + public SpriteSheetAnimation(string name, TextureAtlas textureAtlas, float frameDuration = DefaultFrameDuration, + bool isLooping = true, bool isReversed = false, bool isPingPong = false) + : this(name, textureAtlas.Regions.ToArray(), frameDuration, isLooping, isReversed, isPingPong) + { + } + + public SpriteSheetAnimation(string name, TextureRegion2D[] keyFrames, float frameDuration = DefaultFrameDuration, + bool isLooping = true, bool isReversed = false, bool isPingPong = false) + : base(null, false) + { + Name = name; + KeyFrames = keyFrames; + FrameDuration = frameDuration; + IsLooping = isLooping; + IsReversed = isReversed; + IsPingPong = isPingPong; + CurrentFrameIndex = IsReversed ? KeyFrames.Length - 1 : 0; + } + + public SpriteSheetAnimation(string name, TextureRegion2D[] keyFrames, SpriteSheetAnimationData data) + : this(name, keyFrames, data.FrameDuration, data.IsLooping, data.IsReversed, data.IsPingPong) + { + } + + public string Name { get; } + public TextureRegion2D[] KeyFrames { get; } + public float FrameDuration { get; set; } + public bool IsLooping { get; set; } + public bool IsReversed { get; set; } + public bool IsPingPong { get; set; } + public new bool IsComplete => CurrentTime >= AnimationDuration; + + public float AnimationDuration => IsPingPong + ? (KeyFrames.Length*2 - 2)*FrameDuration + : KeyFrames.Length*FrameDuration; + + public TextureRegion2D CurrentFrame => KeyFrames[CurrentFrameIndex]; + public int CurrentFrameIndex { get; private set; } + + public float FramesPerSecond + { + get { return 1.0f/FrameDuration; } + set { FrameDuration = value/1.0f; } + } + + public Action OnCompleted { get; set; } + + protected override bool OnUpdate(float deltaTime) + { + if (IsComplete) + { + OnCompleted?.Invoke(); + + if (IsLooping) + CurrentTime -= AnimationDuration; + } + + if (KeyFrames.Length == 1) + { + CurrentFrameIndex = 0; + return IsComplete; + } + + var frameIndex = (int) (CurrentTime/FrameDuration); + var length = KeyFrames.Length; + + if (IsPingPong) + { + frameIndex = frameIndex%(length*2 - 2); + + if (frameIndex >= length) + frameIndex = length - 2 - (frameIndex - length); + } + + if (IsLooping) + { + if (IsReversed) + { + frameIndex = frameIndex%length; + frameIndex = length - frameIndex - 1; + } + else + frameIndex = frameIndex%length; + } + else + frameIndex = IsReversed ? Math.Max(length - frameIndex - 1, 0) : Math.Min(length - 1, frameIndex); + + CurrentFrameIndex = frameIndex; + return IsComplete; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationData.cs b/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationData.cs new file mode 100644 index 00000000..235b3ce3 --- /dev/null +++ b/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationData.cs @@ -0,0 +1,21 @@ +namespace MonoGame.Extended.Animations.SpriteSheets +{ + public class SpriteSheetAnimationData + { + public SpriteSheetAnimationData(int[] frameIndicies, float frameDuration = 0.2f, bool isLooping = true, + bool isReversed = false, bool isPingPong = false) + { + FrameIndicies = frameIndicies; + FrameDuration = frameDuration; + IsLooping = isLooping; + IsReversed = isReversed; + IsPingPong = isPingPong; + } + + public int[] FrameIndicies { get; } + public float FrameDuration { get; } + public bool IsLooping { get; } + public bool IsReversed { get; } + public bool IsPingPong { get; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationFactory.cs b/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationFactory.cs new file mode 100644 index 00000000..9615f4df --- /dev/null +++ b/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationFactory.cs @@ -0,0 +1,51 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Animations.SpriteSheets +{ + public class SpriteSheetAnimationFactory + { + private readonly Dictionary _animationDataDictionary; + + public SpriteSheetAnimationFactory(TextureAtlas textureAtlas) + : this(textureAtlas.Regions) + { + } + + public SpriteSheetAnimationFactory(IEnumerable frames) + { + _animationDataDictionary = new Dictionary(); + Frames = new ReadOnlyCollection(frames.ToArray()); + } + + public ReadOnlyCollection Frames { get; } + + public void Add(string name, SpriteSheetAnimationData data) + { + _animationDataDictionary.Add(name, data); + } + + public void Remove(string name) + { + _animationDataDictionary.Remove(name); + } + + public SpriteSheetAnimation Create(string name) + { + SpriteSheetAnimationData data; + + if (_animationDataDictionary.TryGetValue(name, out data)) + { + var keyFrames = data.FrameIndicies + .Select(i => Frames[i]) + .ToArray(); + + return new SpriteSheetAnimation(name, keyFrames, data); + } + + return null; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationFactoryReader.cs b/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationFactoryReader.cs new file mode 100644 index 00000000..597b1043 --- /dev/null +++ b/Source/MonoGame.Extended.Animations/SpriteSheets/SpriteSheetAnimationFactoryReader.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using Microsoft.Xna.Framework.Content; +using MonoGame.Extended.Content; +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Animations.SpriteSheets +{ + public class SpriteSheetAnimationFactoryReader : ContentTypeReader + { + protected override SpriteSheetAnimationFactory Read(ContentReader reader, SpriteSheetAnimationFactory existingInstance) + { + var textureAtlasAssetName = reader.GetRelativeAssetName(reader.ReadString()); + var textureAtlas = reader.ContentManager.Load(textureAtlasAssetName); + var frameCount = reader.ReadInt32(); + var regions = new List(); + + for (var i = 0; i < frameCount; i++) + { + var frameName = reader.ReadString(); + var textureRegion = textureAtlas[frameName]; + regions.Add(textureRegion); + } + + var animationFactory = new SpriteSheetAnimationFactory(regions); + var animationCount = reader.ReadInt32(); + + for (var i = 0; i < animationCount; i++) + { + var name = reader.ReadString(); + var framesPerSecond = reader.ReadInt32(); + var isLooping = reader.ReadBoolean(); + var isReversed = reader.ReadBoolean(); + var isPingPong = reader.ReadBoolean(); + var frameDuration = 1.0f / framesPerSecond; + var frameIndexCount = reader.ReadInt32(); + var frameIndicies = new int[frameIndexCount]; + + for (var f = 0; f < frameIndexCount; f++) + { + var frameIndex = reader.ReadInt32(); + frameIndicies[f] = frameIndex; + } + + var animationData = new SpriteSheetAnimationData(frameIndicies, frameDuration, isLooping, isReversed, + isPingPong); + animationFactory.Add(name, animationData); + } + + return animationFactory; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Animations/packages.config b/Source/MonoGame.Extended.Animations/packages.config new file mode 100644 index 00000000..28c01444 --- /dev/null +++ b/Source/MonoGame.Extended.Animations/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended/Collisions/CollisionActor.cs b/Source/MonoGame.Extended.Collisions/CollisionActor.cs similarity index 95% rename from Source/MonoGame.Extended/Collisions/CollisionActor.cs rename to Source/MonoGame.Extended.Collisions/CollisionActor.cs index 550c2c91..1b50c2c7 100644 --- a/Source/MonoGame.Extended/Collisions/CollisionActor.cs +++ b/Source/MonoGame.Extended.Collisions/CollisionActor.cs @@ -1,17 +1,16 @@ using Microsoft.Xna.Framework; -using MonoGame.Extended.Shapes; namespace MonoGame.Extended.Collisions { public class CollisionActor : IActorTarget { + private readonly IActorTarget _target; + public CollisionActor(IActorTarget target) { _target = target; } - private readonly IActorTarget _target; - public Vector2 Velocity { get { return _target.Velocity; } diff --git a/Source/MonoGame.Extended/Collisions/CollisionGrid.cs b/Source/MonoGame.Extended.Collisions/CollisionGrid.cs similarity index 75% rename from Source/MonoGame.Extended/Collisions/CollisionGrid.cs rename to Source/MonoGame.Extended.Collisions/CollisionGrid.cs index a20fbd59..10303bb1 100644 --- a/Source/MonoGame.Extended/Collisions/CollisionGrid.cs +++ b/Source/MonoGame.Extended.Collisions/CollisionGrid.cs @@ -1,25 +1,23 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; -using MonoGame.Extended.Shapes; namespace MonoGame.Extended.Collisions { public class CollisionGrid { + private readonly CollisionGridCell[] _data; + public CollisionGrid(int[] data, int columns, int rows, int cellWidth, int cellHeight) { _data = new CollisionGridCell[data.Length]; for (var y = 0; y < rows; y++) - { for (var x = 0; x < columns; x++) { - var index = x + y * columns; + var index = x + y*columns; _data[index] = new CollisionGridCell(this, x, y, data[index]); } - } Columns = columns; Rows = rows; @@ -32,13 +30,11 @@ namespace MonoGame.Extended.Collisions public int CellWidth { get; } public int CellHeight { get; } - private readonly CollisionGridCell[] _data; - public CollisionGridCell GetCellAtIndex(int column, int row) { - var index = column + row * Columns; + var index = column + row*Columns; - if (index < 0 || index >= _data.Length) + if ((index < 0) || (index >= _data.Length)) return new CollisionGridCell(this, column, row, 0); return _data[index]; @@ -46,8 +42,8 @@ namespace MonoGame.Extended.Collisions public CollisionGridCell GetCellAtPosition(Vector3 position) { - var column = (int)(position.X / CellWidth); - var row = (int)(position.Y / CellHeight); + var column = (int) (position.X/CellWidth); + var row = (int) (position.Y/CellHeight); return GetCellAtIndex(column, row); } @@ -56,14 +52,12 @@ namespace MonoGame.Extended.Collisions { var sx = (int) (rectangle.Left/CellWidth); var sy = (int) (rectangle.Top/CellHeight); - var ex = (int) ((rectangle.Right/CellWidth) + 1); - var ey = (int) ((rectangle.Bottom/CellHeight) + 1); + var ex = (int) (rectangle.Right/CellWidth + 1); + var ey = (int) (rectangle.Bottom/CellHeight + 1); for (var y = sy; y < ey; y++) - { for (var x = sx; x < ex; x++) yield return GetCellAtIndex(x, y); - } } public IEnumerable GetCollidables(RectangleF overlappingRectangle) @@ -74,7 +68,7 @@ namespace MonoGame.Extended.Collisions public Rectangle GetCellRectangle(int column, int row) { - return new Rectangle(column * CellWidth, row * CellHeight, CellWidth, CellHeight); + return new Rectangle(column*CellWidth, row*CellHeight, CellWidth, CellHeight); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/Collisions/CollisionGridCell.cs b/Source/MonoGame.Extended.Collisions/CollisionGridCell.cs similarity index 95% rename from Source/MonoGame.Extended/Collisions/CollisionGridCell.cs rename to Source/MonoGame.Extended.Collisions/CollisionGridCell.cs index 8f8b80d0..ff79a2b4 100644 --- a/Source/MonoGame.Extended/Collisions/CollisionGridCell.cs +++ b/Source/MonoGame.Extended.Collisions/CollisionGridCell.cs @@ -1,9 +1,11 @@ -using MonoGame.Extended.Shapes; + namespace MonoGame.Extended.Collisions { public class CollisionGridCell : ICollidable { + private readonly CollisionGrid _parentGrid; + public CollisionGridCell(CollisionGrid parentGrid, int column, int row, int data) { _parentGrid = parentGrid; @@ -13,8 +15,6 @@ namespace MonoGame.Extended.Collisions Flag = data == 0 ? CollisionGridCellFlag.Empty : CollisionGridCellFlag.Solid; } - private readonly CollisionGrid _parentGrid; - public int Column { get; } public int Row { get; } public int Data { get; private set; } diff --git a/Source/MonoGame.Extended/Collisions/CollisionGridCellFlag.cs b/Source/MonoGame.Extended.Collisions/CollisionGridCellFlag.cs similarity index 100% rename from Source/MonoGame.Extended/Collisions/CollisionGridCellFlag.cs rename to Source/MonoGame.Extended.Collisions/CollisionGridCellFlag.cs diff --git a/Source/MonoGame.Extended/Collisions/CollisionInfo.cs b/Source/MonoGame.Extended.Collisions/CollisionInfo.cs similarity index 88% rename from Source/MonoGame.Extended/Collisions/CollisionInfo.cs rename to Source/MonoGame.Extended.Collisions/CollisionInfo.cs index 3ce6a812..bee08dff 100644 --- a/Source/MonoGame.Extended/Collisions/CollisionInfo.cs +++ b/Source/MonoGame.Extended.Collisions/CollisionInfo.cs @@ -1,5 +1,4 @@ using Microsoft.Xna.Framework; -using MonoGame.Extended.Shapes; namespace MonoGame.Extended.Collisions { diff --git a/Source/MonoGame.Extended/Collisions/CollisionWorld.cs b/Source/MonoGame.Extended.Collisions/CollisionWorld.cs similarity index 81% rename from Source/MonoGame.Extended/Collisions/CollisionWorld.cs rename to Source/MonoGame.Extended.Collisions/CollisionWorld.cs index b3d424ba..5de88c13 100644 --- a/Source/MonoGame.Extended/Collisions/CollisionWorld.cs +++ b/Source/MonoGame.Extended.Collisions/CollisionWorld.cs @@ -1,12 +1,16 @@ using System; using System.Collections.Generic; using Microsoft.Xna.Framework; -using MonoGame.Extended.Shapes; namespace MonoGame.Extended.Collisions { public class CollisionWorld : IDisposable, IUpdate { + private readonly List _actors; + + private readonly Vector2 _gravity; + private CollisionGrid _grid; + public CollisionWorld(Vector2 gravity) { _gravity = gravity; @@ -17,9 +21,28 @@ namespace MonoGame.Extended.Collisions { } - private readonly Vector2 _gravity; - private readonly List _actors; - private CollisionGrid _grid; + public void Update(GameTime gameTime) + { + var deltaTime = (float) gameTime.ElapsedGameTime.TotalSeconds; + + foreach (var actor in _actors) + { + actor.Velocity += _gravity*deltaTime; + actor.Position += actor.Velocity*deltaTime; + + if (_grid != null) + foreach (var collidable in _grid.GetCollidables(actor.BoundingBox)) + { + var intersection = RectangleF.Intersect(collidable.BoundingBox, actor.BoundingBox); + + if (intersection.IsEmpty) + continue; + + var info = GetCollisionInfo(actor, collidable, intersection); + actor.OnCollision(info); + } + } + } public CollisionActor CreateActor(IActorTarget target) { @@ -46,41 +69,20 @@ namespace MonoGame.Extended.Collisions if (intersectingRectangle.Width < intersectingRectangle.Height) { - var d = first.BoundingBox.Center.X < second.BoundingBox.Center.X ? intersectingRectangle.Width : -intersectingRectangle.Width; + var d = first.BoundingBox.Center.X < second.BoundingBox.Center.X + ? intersectingRectangle.Width + : -intersectingRectangle.Width; info.PenetrationVector = new Vector2(d, 0); } else { - var d = first.BoundingBox.Center.Y < second.BoundingBox.Center.Y ? intersectingRectangle.Height : -intersectingRectangle.Height; + var d = first.BoundingBox.Center.Y < second.BoundingBox.Center.Y + ? intersectingRectangle.Height + : -intersectingRectangle.Height; info.PenetrationVector = new Vector2(0, d); } return info; } - - public void Update(GameTime gameTime) - { - var deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds; - - foreach (var actor in _actors) - { - actor.Velocity += _gravity * deltaTime; - actor.Position += actor.Velocity * deltaTime; - - if(_grid != null) - { - foreach (var collidable in _grid.GetCollidables(actor.BoundingBox)) - { - var intersection = RectangleF.Intersect(collidable.BoundingBox, actor.BoundingBox); - - if (intersection.IsEmpty) - continue; - - var info = GetCollisionInfo(actor, collidable, intersection); - actor.OnCollision(info); - } - } - } - } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Collisions/CollisionWorldExtensions.cs b/Source/MonoGame.Extended.Collisions/CollisionWorldExtensions.cs new file mode 100644 index 00000000..ba9f22fd --- /dev/null +++ b/Source/MonoGame.Extended.Collisions/CollisionWorldExtensions.cs @@ -0,0 +1,17 @@ +//using System.Linq; +//using MonoGame.Extended.Tiled; + +//namespace MonoGame.Extended.Collisions +//{ +// public static class CollisionWorldExtensions +// { +// public static CollisionGrid CreateGrid(this CollisionWorld world, TiledTileLayer tileLayer) +// { +// var data = tileLayer.Tiles +// .Select(t => (int)t.GlobalIdentifier) +// .ToArray(); + +// return world.CreateGrid(data, tileLayer.Width, tileLayer.Height, tileLayer.TileWidth, tileLayer.TileHeight); +// } +// } +//} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Collisions/IActorTarget.cs b/Source/MonoGame.Extended.Collisions/IActorTarget.cs similarity index 91% rename from Source/MonoGame.Extended/Collisions/IActorTarget.cs rename to Source/MonoGame.Extended.Collisions/IActorTarget.cs index db20078a..df93ea9e 100644 --- a/Source/MonoGame.Extended/Collisions/IActorTarget.cs +++ b/Source/MonoGame.Extended.Collisions/IActorTarget.cs @@ -1,5 +1,4 @@ using Microsoft.Xna.Framework; -using MonoGame.Extended.Shapes; namespace MonoGame.Extended.Collisions { diff --git a/Source/MonoGame.Extended.Collisions/MonoGame.Extended.Collisions.csproj b/Source/MonoGame.Extended.Collisions/MonoGame.Extended.Collisions.csproj new file mode 100644 index 00000000..4e03c217 --- /dev/null +++ b/Source/MonoGame.Extended.Collisions/MonoGame.Extended.Collisions.csproj @@ -0,0 +1,74 @@ + + + + + 10.0 + Debug + AnyCPU + {02562C6F-5BFB-467E-8A95-68B6CE2D635A} + Library + Properties + MonoGame.Extended.Collisions + MonoGame.Extended.Collisions + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile111 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + 6 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902} + MonoGame.Extended.Tiled + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll + + + + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Collisions/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Collisions/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..adbac64e --- /dev/null +++ b/Source/MonoGame.Extended.Collisions/Properties/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System.Resources; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Collisions")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Collisions")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.Collisions/packages.config b/Source/MonoGame.Extended.Collisions/packages.config new file mode 100644 index 00000000..28c01444 --- /dev/null +++ b/Source/MonoGame.Extended.Collisions/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorAnimation.cs b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorAnimation.cs similarity index 68% rename from Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorAnimation.cs rename to Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorAnimation.cs index e9676314..14638d4e 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorAnimation.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorAnimation.cs @@ -4,15 +4,21 @@ namespace MonoGame.Extended.Content.Pipeline.Animations { public class AstridAnimatorAnimation { + public string Name { get; set; } + public int FramesPerSecond { get; set; } + public List Frames { get; set; } + public bool IsLooping { get; set; } + public bool IsReversed { get; set; } + public bool IsPingPong { get; set; } + public AstridAnimatorAnimation(string name, int framesPerSecond) { Name = name; FramesPerSecond = framesPerSecond; Frames = new List(); + IsLooping = true; + IsReversed = false; + IsPingPong = false; } - - public string Name { get; set; } - public int FramesPerSecond { get; set; } - public List Frames { get; set; } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorFile.cs b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorFile.cs similarity index 99% rename from Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorFile.cs rename to Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorFile.cs index 0e086d37..765f2f24 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorFile.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorFile.cs @@ -4,12 +4,12 @@ namespace MonoGame.Extended.Content.Pipeline.Animations { public class AstridAnimatorFile { + public string TextureAtlas { get; set; } + public List Animations { get; set; } + public AstridAnimatorFile() { Animations = new List(); } - - public string TextureAtlas { get; set; } - public List Animations { get; set; } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorImporter.cs b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorImporter.cs similarity index 56% rename from Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorImporter.cs rename to Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorImporter.cs index 5218ad58..d7575fd1 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorImporter.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorImporter.cs @@ -4,17 +4,20 @@ using Newtonsoft.Json; namespace MonoGame.Extended.Content.Pipeline.Animations { - [ContentImporter(".aa", DefaultProcessor = "AstridAnimatorProcessor", DisplayName = "Astrid Animator Importer - MonoGame.Extended")] + [ContentImporter(".aa", DefaultProcessor = "AstridAnimatorProcessor", + DisplayName = "Astrid Animator Importer - MonoGame.Extended")] public class AstridAnimatorImporter : ContentImporter> { public override ContentImporterResult Import(string filename, ContentImporterContext context) { using (var streamReader = new StreamReader(filename)) - using (var jsonReader = new JsonTextReader(streamReader)) { - var serializer = new JsonSerializer(); - var data = serializer.Deserialize(jsonReader); - return new ContentImporterResult(filename, data); + using (var jsonReader = new JsonTextReader(streamReader)) + { + var serializer = new JsonSerializer(); + var data = serializer.Deserialize(jsonReader); + return new ContentImporterResult(filename, data); + } } } } diff --git a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorProcessor.cs b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorProcessor.cs similarity index 71% rename from Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorProcessor.cs rename to Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorProcessor.cs index 878ec8a9..e22d65b3 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorProcessor.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorProcessor.cs @@ -5,9 +5,11 @@ using Microsoft.Xna.Framework.Content.Pipeline; namespace MonoGame.Extended.Content.Pipeline.Animations { [ContentProcessor(DisplayName = "Astrid Animator Processor - MonoGame.Extended")] - public class AstridAnimatorProcessor : ContentProcessor, AstridAnimatorProcessorResult> + public class AstridAnimatorProcessor : + ContentProcessor, AstridAnimatorProcessorResult> { - public override AstridAnimatorProcessorResult Process(ContentImporterResult input, ContentProcessorContext context) + public override AstridAnimatorProcessorResult Process(ContentImporterResult input, + ContentProcessorContext context) { var data = input.Data; var directory = Path.GetDirectoryName(input.FilePath); @@ -16,7 +18,7 @@ namespace MonoGame.Extended.Content.Pipeline.Animations .OrderBy(f => f) .Distinct(); - return new AstridAnimatorProcessorResult(directory, data, frames); + return new AstridAnimatorProcessorResult(directory, data, frames); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorProcessorResult.cs b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorProcessorResult.cs similarity index 92% rename from Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorProcessorResult.cs rename to Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorProcessorResult.cs index 90923f77..de92ec36 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorProcessorResult.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorProcessorResult.cs @@ -5,6 +5,11 @@ namespace MonoGame.Extended.Content.Pipeline.Animations { public class AstridAnimatorProcessorResult { + public string TextureAtlasAssetName { get; private set; } + public string Directory { get; private set; } + public AstridAnimatorFile Data { get; private set; } + public List Frames { get; private set; } + public AstridAnimatorProcessorResult(string directory, AstridAnimatorFile data, IEnumerable frames) { Directory = directory; @@ -12,10 +17,5 @@ namespace MonoGame.Extended.Content.Pipeline.Animations Frames = new List(frames); TextureAtlasAssetName = Path.GetFileNameWithoutExtension(data.TextureAtlas); } - - public string TextureAtlasAssetName { get; private set; } - public string Directory { get; private set; } - public AstridAnimatorFile Data { get; private set; } - public List Frames { get; private set; } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorWriter.cs b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorWriter.cs similarity index 80% rename from Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorWriter.cs rename to Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorWriter.cs index 193b8f2f..6f56f3fe 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Animations/AstridAnimatorWriter.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Animations/AstridAnimatorWriter.cs @@ -1,6 +1,5 @@ using Microsoft.Xna.Framework.Content.Pipeline; using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler; -using MonoGame.Extended.Animations; namespace MonoGame.Extended.Content.Pipeline.Animations { @@ -9,7 +8,7 @@ namespace MonoGame.Extended.Content.Pipeline.Animations { public override string GetRuntimeReader(TargetPlatform targetPlatform) { - return typeof (SpriteSheetAnimationGroupReader).AssemblyQualifiedName; + return "MonoGame.Extended.Animations.SpriteSheets.SpriteSheetAnimationFactoryReader, MonoGame.Extended.Animations"; } protected override void Write(ContentWriter writer, AstridAnimatorProcessorResult input) @@ -28,6 +27,9 @@ namespace MonoGame.Extended.Content.Pipeline.Animations { writer.Write(animation.Name); writer.Write(animation.FramesPerSecond); + writer.Write(animation.IsLooping); + writer.Write(animation.IsReversed); + writer.Write(animation.IsPingPong); writer.Write(animation.Frames.Count); foreach (var frame in animation.Frames) diff --git a/Source/MonoGame.Extended.Content.Pipeline.Animations/MonoGame.Extended.Content.Pipeline.Animations.csproj b/Source/MonoGame.Extended.Content.Pipeline.Animations/MonoGame.Extended.Content.Pipeline.Animations.csproj new file mode 100644 index 00000000..b8c17d0c --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Animations/MonoGame.Extended.Content.Pipeline.Animations.csproj @@ -0,0 +1,73 @@ + + + + + Debug + AnyCPU + {E41B1841-FB13-489F-92DA-BEEE176A2C57} + Library + Properties + MonoGame.Extended.Content.Pipeline.Animations + MonoGame.Extended.Content.Pipeline.Animations + v4.5 + 512 + + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + ..\packages\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll + True + + + C:\Program Files (x86)\MSBuild\MonoGame\v3.0\Tools\MonoGame.Framework.Content.Pipeline.dll + + + ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + + + + + + + + + {28CD24BD-432C-4987-9E9D-65CFCF120EA0} + MonoGame.Extended.Content.Pipeline + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Animations/MonoGame.Framework.dll.config b/Source/MonoGame.Extended.Content.Pipeline.Animations/MonoGame.Framework.dll.config new file mode 100644 index 00000000..09710ae4 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Animations/MonoGame.Framework.dll.config @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Source/MonoGame.Extended.Content.Pipeline.Animations/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Content.Pipeline.Animations/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..627cf1f5 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Animations/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Content.Pipeline.Animations")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Content.Pipeline.Animations")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e41b1841-fb13-489f-92da-beee176a2c57")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.Content.Pipeline.Animations/packages.config b/Source/MonoGame.Extended.Content.Pipeline.Animations/packages.config new file mode 100644 index 00000000..e6cd2b7c --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Animations/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Graphics/MonoGame.Extended.Content.Pipeline.Graphics.csproj b/Source/MonoGame.Extended.Content.Pipeline.Graphics/MonoGame.Extended.Content.Pipeline.Graphics.csproj new file mode 100644 index 00000000..07269bb6 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Graphics/MonoGame.Extended.Content.Pipeline.Graphics.csproj @@ -0,0 +1,75 @@ + + + + + Debug + AnyCPU + {F8FE7AF9-EFA9-4A3B-AE51-ECDC6A33BE1B} + Library + Properties + MonoGame.Extended.Content.Pipeline.Graphics + MonoGame.Extended.Content.Pipeline.Graphics + v4.5 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\Dependencies\MonoGame.Framework.dll + + + C:\Program Files (x86)\MSBuild\MonoGame\v3.0\Tools\MonoGame.Framework.Content.Pipeline.dll + + + + + + + + + + + + + + + + {28cd24bd-432c-4987-9e9d-65cfcf120ea0} + MonoGame.Extended.Content.Pipeline + + + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC} + MonoGame.Extended.Graphics + + + {41724C52-3D50-45BB-81EB-3C8A247EAFD1} + MonoGame.Extended + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Graphics/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Content.Pipeline.Graphics/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..7b003f95 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Graphics/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Content.Pipeline.Graphics")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Content.Pipeline.Graphics")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f8fe7af9-efa9-4a3b-ae51-ecdc6a33be1b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/isometric_tileset.png b/Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/isometric_tileset.png deleted file mode 100644 index 4c6f1b4ffc44b24f37fc3e71c00973c8da32df89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4599 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 - var importer = new TiledMapImporter(); - var importerContext = Substitute.For(); - importerContext.Logger.Returns(logger); - - var map = importer.Import(filePath, importerContext); - - Assert.AreEqual("1.0", map.Version); - Assert.AreEqual(TmxOrientation.Orthogonal, map.Orientation); - Assert.AreEqual(TmxRenderOrder.RightDown, map.RenderOrder); - Assert.AreEqual(20, map.Width); - Assert.AreEqual(10, map.Height); - Assert.AreEqual(128, map.TileWidth); - Assert.AreEqual(128, map.TileHeight); - Assert.AreEqual("#7d7d7d", map.BackgroundColor); - Assert.AreEqual("awesome", map.Properties[0].Name); - Assert.AreEqual("42", map.Properties[0].Value); - Assert.AreEqual(1, map.Tilesets.Count); - Assert.AreEqual(3, map.Layers.Count); - Assert.AreEqual(TmxOrientation.Orthogonal,map.Orientation); - - var tileset = map.Tilesets.First(); - Assert.AreEqual(1, tileset.FirstGid); - Assert.AreEqual("free-tileset.png", tileset.Image.Source); - Assert.AreEqual(652, tileset.Image.Width); - Assert.AreEqual(783, tileset.Image.Height); - Assert.AreEqual(2, tileset.Margin); - Assert.AreEqual("free-tileset", tileset.Name); - Assert.AreEqual(null, tileset.Source); - Assert.AreEqual(2, tileset.Spacing); - Assert.AreEqual(0, tileset.TerrainTypes.Count); - Assert.AreEqual(0, tileset.Properties.Count); - Assert.AreEqual(128, tileset.TileHeight); - Assert.AreEqual(128, tileset.TileWidth); - Assert.AreEqual(0, tileset.TileOffset.X); - Assert.AreEqual(0, tileset.TileOffset.Y); - - var tileLayer2 = (TmxTileLayer) map.Layers[0]; - Assert.AreEqual("Tile Layer 2", tileLayer2.Name); - Assert.AreEqual(1, tileLayer2.Opacity); - Assert.AreEqual(0, tileLayer2.Properties.Count); - Assert.AreEqual(true, tileLayer2.Visible); - Assert.AreEqual(200, tileLayer2.Data.Tiles.Count); - Assert.AreEqual(0, tileLayer2.X); - Assert.AreEqual(0, tileLayer2.Y); - - var imageLayer = (TmxImageLayer)map.Layers[1]; - Assert.AreEqual("Image Layer 1", imageLayer.Name); - Assert.AreEqual(1, imageLayer.Opacity); - Assert.AreEqual(0, imageLayer.Properties.Count); - Assert.AreEqual(true, imageLayer.Visible); - Assert.AreEqual("hills.png", imageLayer.Image.Source); - Assert.AreEqual(100, imageLayer.X); - Assert.AreEqual(100, imageLayer.Y); - - var tileLayer1 = (TmxTileLayer)map.Layers[2]; - Assert.AreEqual("Tile Layer 1", tileLayer1.Name); - Assert.AreEqual(2, tileLayer1.Properties.Count); - - Assert.AreEqual("customlayerprop", tileLayer1.Properties[0].Name); - Assert.AreEqual("1", tileLayer1.Properties[0].Value); - - Assert.AreEqual("customlayerprop2", tileLayer1.Properties[1].Name); - Assert.AreEqual("2", tileLayer1.Properties[1].Value); - } - - [Test] - public void TiledMapImporter_Xml_Test() - { - var filePath = PathExtensions.GetApplicationFullPath(@"TestData\test-tileset-xml.tmx"); - var map = ImportAndProcessMap(filePath); - var layer = map.Layers.OfType().First(); - var actualData = layer.Data.Tiles.Select(i => i.Gid).ToArray(); - - Assert.IsNull(layer.Data.Encoding); - Assert.IsNull(layer.Data.Compression); - Assert.IsTrue(new [] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(actualData)); - } - - [Test] - public void TiledMapImporter_Csv_Test() - { - var filePath = PathExtensions.GetApplicationFullPath(@"TestData\test-tileset-csv.tmx"); - var map = ImportAndProcessMap(filePath); - var layer = map.Layers.OfType().First(); - var data = layer.Data.Tiles.Select(i => i.Gid).ToArray(); - - Assert.AreEqual("csv", layer.Data.Encoding); - Assert.IsNull(layer.Data.Compression); - Assert.IsTrue(new [] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data)); - } - - [Test] - public void TiledMapImporter_Base64_Test() - { - var filePath = PathExtensions.GetApplicationFullPath(@"TestData\test-tileset-base64.tmx"); - var map = ImportAndProcessMap(filePath); - var layer = map.Layers.OfType().First(); - var data = layer.Data.Tiles.Select(i => i.Gid).ToArray(); - - Assert.AreEqual("base64", layer.Data.Encoding); - Assert.IsNull(layer.Data.Compression); - Assert.IsTrue(new [] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data)); - } - - [Test] - public void TiledMapImporter_Gzip_Test() - { - var filePath = PathExtensions.GetApplicationFullPath(@"TestData\test-tileset-gzip.tmx"); - var map = ImportAndProcessMap(filePath); - var layer = map.Layers.OfType().First(); - var data = layer.Data.Tiles.Select(i => i.Gid).ToArray(); - - Assert.AreEqual("base64", layer.Data.Encoding); - Assert.AreEqual("gzip", layer.Data.Compression); - Assert.IsTrue(new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data)); - } - - - [Test] - public void TiledMapImporter_Zlib_Test() - { - var filePath = PathExtensions.GetApplicationFullPath(@"TestData\test-tileset-zlib.tmx"); - var map = ImportAndProcessMap(filePath); - var layer = map.Layers.OfType().First(); - var data = layer.Data.Tiles.Select(i => i.Gid).ToArray(); - - Assert.AreEqual("base64", layer.Data.Encoding); - Assert.AreEqual("zlib", layer.Data.Compression); - Assert.IsTrue(new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data)); - } - - [Test] - public void TiledMapImporter_ObjectLayer_Test() - { - var filePath = PathExtensions.GetApplicationFullPath(@"TestData\test-object-layer.tmx"); - var map = ImportAndProcessMap(filePath); - var tmxObjectGroup = map.ObjectGroups[0]; - var tmxObject = tmxObjectGroup.Objects[0]; - var tmxPolygon = tmxObjectGroup.Objects[3].Polygon; - var tmxPolyline = tmxObjectGroup.Objects[4].Polyline; - - Assert.AreEqual(1, map.ObjectGroups.Count); - Assert.AreEqual("Object Layer 1", tmxObjectGroup.Name); - Assert.AreEqual(1, tmxObject.Id); - Assert.AreEqual(131.345f, tmxObject.X); - Assert.AreEqual(65.234f, tmxObject.Y); - Assert.AreEqual(311.111f, tmxObject.Width); - Assert.AreEqual(311.232f, tmxObject.Height); - Assert.AreEqual(1, tmxObject.Properties.Count); - Assert.AreEqual("shape", tmxObject.Properties[0].Name); - Assert.AreEqual("circle", tmxObject.Properties[0].Value); - Assert.IsNotNull(tmxObject.Ellipse); - Assert.IsFalse(tmxObjectGroup.Objects[1].Visible); - Assert.AreEqual(-1, tmxObjectGroup.Objects[1].Gid); - Assert.AreEqual(23, tmxObjectGroup.Objects[5].Gid); - Assert.AreEqual("rectangle", tmxObjectGroup.Objects[2].Type); - Assert.IsNotNull(tmxPolygon); - Assert.AreEqual("0,0 180,90 -8,275 -45,81 38,77", tmxPolygon.Points); - Assert.IsNotNull(tmxPolyline); - Assert.AreEqual("0,0 28,299 326,413 461,308", tmxPolyline.Points); - } - - - private static TmxMap ImportAndProcessMap(string filename) - { - var logger = Substitute.For(); - var importer = new TiledMapImporter(); - var importerContext = Substitute.For(); - importerContext.Logger.Returns(logger); - - var processor = new TiledMapProcessor(); - var processorContext = Substitute.For(); - processorContext.Logger.Returns(logger); - - var import = importer.Import(filename, importerContext); - var result = processor.Process(import, processorContext); - - return result.Map; - } - } -} diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Graphics/TiledMapLayerAnimatedModelContent.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Graphics/TiledMapLayerAnimatedModelContent.cs new file mode 100644 index 00000000..c31ad635 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Graphics/TiledMapLayerAnimatedModelContent.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using MonoGame.Extended.Content.Pipeline.Tiled; + +namespace MonoGame.Extended.Content.Pipeline.Graphics +{ + public class TiledMapLayerAnimatedModelContent : TiledMapLayerModelContent + { + private readonly List _animatedTilesetTiles; + + public ReadOnlyCollection AnimatedTilesetTiles { get; } + public TiledMapTilesetContent Tileset { get; } + + public TiledMapLayerAnimatedModelContent(string layerName, TiledMapTilesetContent tileset) + : base(layerName, tileset) + { + _animatedTilesetTiles = new List(); + AnimatedTilesetTiles = new ReadOnlyCollection(_animatedTilesetTiles); + Tileset = tileset; + } + + internal void AddAnimatedTile(TiledMapTilesetTileContent tile) + { + _animatedTilesetTiles.Add(tile); + } + } +} diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Graphics/TiledMapLayerModelContent.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Graphics/TiledMapLayerModelContent.cs new file mode 100644 index 00000000..9be5bb63 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Graphics/TiledMapLayerModelContent.cs @@ -0,0 +1,139 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.IO; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Content.Pipeline.Tiled; +using MonoGame.Extended.Tiled; + +namespace MonoGame.Extended.Content.Pipeline.Graphics +{ + public class TiledMapLayerModelContent + { + private readonly List _vertices; + private readonly List _indices; + + public string LayerName { get; } + public ReadOnlyCollection Vertices { get; } + public ReadOnlyCollection Indices { get; } + public Size2 ImageSize { get; } + public string TextureAssetName { get; } + + public TiledMapLayerModelContent(string layerName, TiledMapImageContent image) + { + LayerName = layerName; + _vertices = new List(); + Vertices = new ReadOnlyCollection(_vertices); + _indices = new List(); + Indices = new ReadOnlyCollection(_indices); + ImageSize = new Size2(image.Width, image.Height); + TextureAssetName = Path.ChangeExtension(image.Source, null); + } + + public TiledMapLayerModelContent(string layerName, TiledMapTilesetContent tileset) + : this(layerName, tileset.Image) + { + } + + public void AddTileVertices(Point2 position, Rectangle? sourceRectangle = null, TiledMapTileFlipFlags flags = TiledMapTileFlipFlags.None) + { + float texelLeft, texelTop, texelRight, texelBottom; + var sourceRectangle1 = sourceRectangle ?? new Rectangle(0, 0, (int)ImageSize.Width, (int)ImageSize.Height); + + if (sourceRectangle.HasValue) + { + var reciprocalWidth = 1f / ImageSize.Width; + var reciprocalHeight = 1f / ImageSize.Height; + texelLeft = (sourceRectangle1.X + 0.5f) * reciprocalWidth; + texelTop = (sourceRectangle1.Y + 0.5f) * reciprocalHeight; + texelRight = (sourceRectangle1.X + sourceRectangle1.Width) * reciprocalWidth; + texelBottom = (sourceRectangle1.Y + sourceRectangle1.Height) * reciprocalHeight; + } + else + { + texelLeft = 0; + texelTop = 0; + texelBottom = 1; + texelRight = 1; + } + + VertexPositionTexture vertexTopLeft, vertexTopRight, vertexBottomLeft, vertexBottomRight; + + vertexTopLeft.Position = new Vector3(position, 0); + vertexTopRight.Position = new Vector3(position + new Vector2(sourceRectangle1.Width, 0), 0); + vertexBottomLeft.Position = new Vector3(position + new Vector2(0, sourceRectangle1.Height), 0); + vertexBottomRight.Position = + new Vector3(position + new Vector2(sourceRectangle1.Width, sourceRectangle1.Height), 0); + + vertexTopLeft.TextureCoordinate.Y = texelTop; + vertexTopLeft.TextureCoordinate.X = texelLeft; + + vertexTopRight.TextureCoordinate.Y = texelTop; + vertexTopRight.TextureCoordinate.X = texelRight; + + vertexBottomLeft.TextureCoordinate.Y = texelBottom; + vertexBottomLeft.TextureCoordinate.X = texelLeft; + + vertexBottomRight.TextureCoordinate.Y = texelBottom; + vertexBottomRight.TextureCoordinate.X = texelRight; + + var flipDiagonally = (flags & TiledMapTileFlipFlags.FlipDiagonally) != 0; + var flipHorizontally = (flags & TiledMapTileFlipFlags.FlipHorizontally) != 0; + var flipVertically = (flags & TiledMapTileFlipFlags.FlipVertically) != 0; + + if (flipDiagonally) + { + FloatHelper.Swap(ref vertexTopRight.TextureCoordinate.X, ref vertexBottomLeft.TextureCoordinate.X); + FloatHelper.Swap(ref vertexTopRight.TextureCoordinate.Y, ref vertexBottomLeft.TextureCoordinate.Y); + } + + if (flipHorizontally) + if (flipDiagonally) + { + FloatHelper.Swap(ref vertexTopLeft.TextureCoordinate.Y, ref vertexTopRight.TextureCoordinate.Y); + FloatHelper.Swap(ref vertexBottomLeft.TextureCoordinate.Y, ref vertexBottomRight.TextureCoordinate.Y); + } + else + { + FloatHelper.Swap(ref vertexTopLeft.TextureCoordinate.X, ref vertexTopRight.TextureCoordinate.X); + FloatHelper.Swap(ref vertexBottomLeft.TextureCoordinate.X, ref vertexBottomRight.TextureCoordinate.X); + } + + if (flipVertically) + if (flipDiagonally) + { + FloatHelper.Swap(ref vertexTopLeft.TextureCoordinate.X, ref vertexBottomLeft.TextureCoordinate.X); + FloatHelper.Swap(ref vertexTopRight.TextureCoordinate.X, ref vertexBottomRight.TextureCoordinate.X); + } + else + { + FloatHelper.Swap(ref vertexTopLeft.TextureCoordinate.Y, ref vertexBottomLeft.TextureCoordinate.Y); + FloatHelper.Swap(ref vertexTopRight.TextureCoordinate.Y, ref vertexBottomRight.TextureCoordinate.Y); + } + + _vertices.Add(vertexTopLeft); + _vertices.Add(vertexTopRight); + _vertices.Add(vertexBottomLeft); + _vertices.Add(vertexBottomRight); + + Debug.Assert(Vertices.Count <= TiledMapHelper.MaximumVerticesPerModel); + } + + public void AddTileIndices() + { + var indexOffset = Vertices.Count; + + Debug.Assert(3 + indexOffset <= TiledMapHelper.MaximumVerticesPerModel); + + _indices.Add((ushort)(0 + indexOffset)); + _indices.Add((ushort)(1 + indexOffset)); + _indices.Add((ushort)(2 + indexOffset)); + _indices.Add((ushort)(1 + indexOffset)); + _indices.Add((ushort)(3 + indexOffset)); + _indices.Add((ushort)(2 + indexOffset)); + + Debug.Assert(Indices.Count <= TiledMapHelper.MaximumIndicesPerModel); + } + } +} diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/MonoGame.Extended.Content.Pipeline.Tiled.csproj b/Source/MonoGame.Extended.Content.Pipeline.Tiled/MonoGame.Extended.Content.Pipeline.Tiled.csproj new file mode 100644 index 00000000..a7eb74a7 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/MonoGame.Extended.Content.Pipeline.Tiled.csproj @@ -0,0 +1,130 @@ + + + + + Debug + AnyCPU + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} + Library + Properties + MonoGame.Extended.Content.Pipeline + MonoGame.Extended.Content.Pipeline.Tiled + v4.5 + 512 + + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + true + 6 + + + pdbonly + true + bin\ + TRACE + prompt + 4 + true + + + + ..\packages\MonoGame.Framework.DesktopGL.3.5.1.1679\lib\net40\MonoGame.Framework.dll + True + + + C:\Program Files (x86)\MSBuild\MonoGame\v3.0\Tools\MonoGame.Framework.Content.Pipeline.dll + + + ..\packages\MonoGame.Framework.DesktopGL.3.5.1.1679\lib\net40\NVorbis.dll + True + + + ..\packages\MonoGame.Framework.DesktopGL.3.5.1.1679\lib\net40\OpenTK.dll + True + + + + + + + + + + + + + + Tiled\TiledMapHelper.cs + + + Tiled\TiledMapLayerType.cs + + + Tiled\TiledMapObjectType.cs + + + Tiled\TiledMapTile.cs + + + Tiled\TiledMapTileFlipFlags.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {28CD24BD-432C-4987-9E9D-65CFCF120EA0} + MonoGame.Extended.Content.Pipeline + + + {41724C52-3D50-45BB-81EB-3C8A247EAFD1} + MonoGame.Extended + + + + + + + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..fc65759d --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Content.Pipeline.Tiled")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Content.Pipeline.Tiled")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("96be0f14-3dc8-43b9-992f-654bd36cc3c7")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/ContentWriterExtensions.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/ContentWriterExtensions.cs new file mode 100644 index 00000000..77689b50 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/ContentWriterExtensions.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + public static class ContentWriterExtensions + { + // ReSharper disable once SuggestBaseTypeForParameter + public static void WriteTiledMapProperties(this ContentWriter writer, + IReadOnlyCollection value) + { + writer.Write(value.Count); + foreach (var property in value) + { + writer.Write(property.Name); + writer.Write(property.Value); + } + } + } +} diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxMap.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapContent.cs similarity index 50% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxMap.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapContent.cs index df7114aa..9f287c8e 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxMap.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapContent.cs @@ -4,24 +4,22 @@ using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.Tiled { [XmlRoot(ElementName = "map")] - public class TmxMap + public class TiledMapContent { - public TmxMap() - { - Properties = new List(); - Tilesets = new List(); - Layers = new List(); - ObjectGroups = new List(); - } + [XmlIgnore] + public string Name { get; set; } + + [XmlIgnore] + public string FilePath { get; set; } [XmlAttribute(AttributeName = "version")] public string Version { get; set; } [XmlAttribute(AttributeName = "orientation")] - public TmxOrientation Orientation { get; set; } + public TiledMapOrientationContent Orientation { get; set; } [XmlAttribute(AttributeName = "renderorder")] - public TmxRenderOrder RenderOrder { get; set; } + public TiledMapTileDrawOrderContent RenderOrder { get; set; } [XmlAttribute(AttributeName = "backgroundcolor")] public string BackgroundColor { get; set; } @@ -39,17 +37,22 @@ namespace MonoGame.Extended.Content.Pipeline.Tiled public int TileHeight { get; set; } [XmlElement(ElementName = "tileset")] - public List Tilesets { get; set; } + public List Tilesets { get; set; } - [XmlElement(ElementName = "objectgroup")] - public List ObjectGroups { get; set; } - - [XmlElement(ElementName = "layer", Type = typeof(TmxTileLayer))] - [XmlElement(ElementName = "imagelayer", Type = typeof(TmxImageLayer))] - public List Layers { get; set; } + [XmlElement(ElementName = "layer", Type = typeof(TiledMapTileLayerContent))] + [XmlElement(ElementName = "imagelayer", Type = typeof(TiledMapImageLayerContent))] + [XmlElement(ElementName = "objectgroup", Type = typeof(TiledMapObjectLayerContent))] + public List Layers { get; set; } [XmlArray("properties")] [XmlArrayItem("property")] - public List Properties { get; set; } + public List Properties { get; set; } + + public TiledMapContent() + { + Properties = new List(); + Tilesets = new List(); + Layers = new List(); + } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxEllipse.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapEllipseContent.cs similarity index 62% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxEllipse.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapEllipseContent.cs index b37bdbb6..1f9c81b8 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxEllipse.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapEllipseContent.cs @@ -1,6 +1,6 @@ namespace MonoGame.Extended.Content.Pipeline.Tiled { - public class TmxEllipse + public class TiledMapEllipseContent { } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxImage.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImageContent.cs similarity index 80% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxImage.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImageContent.cs index 385ee16a..87748b91 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxImage.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImageContent.cs @@ -2,17 +2,8 @@ using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.Tiled { - public class TmxImage + public class TiledMapImageContent { - public TmxImage() - { - } - - public override string ToString() - { - return Source; - } - [XmlAttribute(AttributeName = "source")] public string Source { get; set; } @@ -26,9 +17,14 @@ namespace MonoGame.Extended.Content.Pipeline.Tiled public string Format { get; set; } [XmlAttribute(AttributeName = "trans")] - public string Trans { get; set; } + public string TransparentColor { get; set; } [XmlElement(ElementName = "data")] - public TmxData Data { get; set; } + public TiledMapTileLayerDataContent Data { get; set; } + + public override string ToString() + { + return Source; + } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxImageLayer.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImageLayerContent.cs similarity index 57% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxImageLayer.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImageLayerContent.cs index de56dda9..bb103fcc 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxImageLayer.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImageLayerContent.cs @@ -1,22 +1,11 @@ using System.Collections.Generic; using System.Xml.Serialization; +using MonoGame.Extended.Tiled; namespace MonoGame.Extended.Content.Pipeline.Tiled { - public class TmxImageLayer : TmxLayer + public class TiledMapImageLayerContent : TiledMapLayerContent { - public TmxImageLayer() - { - Opacity = 1.0f; - Visible = true; - Properties = new List(); - } - - public override string ToString() - { - return string.Format("{0}: {1}", Name, Image); - } - [XmlAttribute(AttributeName = "x")] public int X { get; set; } @@ -24,6 +13,19 @@ namespace MonoGame.Extended.Content.Pipeline.Tiled public int Y { get; set; } [XmlElement(ElementName = "image")] - public TmxImage Image { get; set; } + public TiledMapImageContent Image { get; set; } + + public TiledMapImageLayerContent() + : base(TiledMapLayerType.ImageLayer) + { + Opacity = 1.0f; + Visible = true; + Properties = new List(); + } + + public override string ToString() + { + return $"{Name}: {Image}"; + } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImporter.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImporter.cs new file mode 100644 index 00000000..94e21ef0 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapImporter.cs @@ -0,0 +1,69 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Xml.Serialization; +using Microsoft.Xna.Framework.Content.Pipeline; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + [ContentImporter(".tmx", DefaultProcessor = "TiledMapProcessor", DisplayName = "Tiled Map Importer - MonoGame.Extended")] + public class TiledMapImporter : ContentImporter + { + public override TiledMapContent Import(string filePath, ContentImporterContext context) + { + if (filePath == null) + throw new ArgumentNullException(nameof(filePath)); + + ContentLogger.Logger = context.Logger; + ContentLogger.Log($"Importing '{filePath}'"); + + var map = DeserializeTiledMapContent(filePath); + + if (map.Width > ushort.MaxValue || map.Height > ushort.MaxValue) + throw new InvalidContentException($"The map '{filePath} is much too large. The maximum supported width and height for a Tiled map is {ushort.MaxValue}."); + + ContentLogger.Log($"Imported '{filePath}'"); + + return map; + } + + private static TiledMapContent DeserializeTiledMapContent(string filePath) + { + using (var reader = new StreamReader(filePath)) + { + var mapSerializer = new XmlSerializer(typeof(TiledMapContent)); + var map = (TiledMapContent)mapSerializer.Deserialize(reader); + + map.FilePath = filePath; + + var tilesetSerializer = new XmlSerializer(typeof(TiledMapTilesetContent)); + + for (var i = 0; i < map.Tilesets.Count; i++) + { + var tileset = map.Tilesets[i]; + + if (string.IsNullOrWhiteSpace(tileset.Source)) + continue; + var directoryName = Path.GetDirectoryName(filePath); + var tilesetLocation = tileset.Source.Replace('/', Path.DirectorySeparatorChar); + + Debug.Assert(directoryName != null, "directoryName != null"); + var tilesetFilePath = Path.Combine(directoryName, tilesetLocation); + + ContentLogger.Log($"Importing tileset '{tilesetFilePath}'"); + + using (var file = new FileStream(tilesetFilePath, FileMode.Open)) + { + map.Tilesets[i] = (TiledMapTilesetContent)tilesetSerializer.Deserialize(file); + } + + ContentLogger.Log($"Imported tileset '{tilesetFilePath}'"); + } + + map.Name = filePath; + + return map; + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapLayerContent.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapLayerContent.cs new file mode 100644 index 00000000..19f77cfb --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapLayerContent.cs @@ -0,0 +1,51 @@ +using System.Collections.Generic; +using System.Xml.Serialization; +using MonoGame.Extended.Content.Pipeline.Graphics; +using MonoGame.Extended.Tiled; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + [XmlInclude(typeof(TiledMapTileLayerContent))] + [XmlInclude(typeof(TiledMapImageLayerContent))] + [XmlInclude(typeof(TiledMapObjectLayerContent))] + public abstract class TiledMapLayerContent + { + [XmlAttribute(AttributeName = "name")] + public string Name { get; set; } + + [XmlAttribute(AttributeName = "opacity")] + public float Opacity { get; set; } + + [XmlAttribute(AttributeName = "visible")] + public bool Visible { get; set; } + + [XmlAttribute(AttributeName = "offsetx")] + public float OffsetX { get; set; } + + [XmlAttribute(AttributeName = "offsety")] + public float OffsetY { get; set; } + + [XmlArray("properties")] + [XmlArrayItem("property")] + public List Properties { get; set; } + + [XmlIgnore] + public TiledMapLayerType Type { get; } + + [XmlIgnore] + public TiledMapLayerModelContent[] Models { get; set; } + + protected TiledMapLayerContent(TiledMapLayerType type) + { + Type = type; + Opacity = 1.0f; + Visible = true; + Properties = new List(); + } + + public override string ToString() + { + return Name; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxObject.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectContent.cs similarity index 71% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxObject.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectContent.cs index a8e420ac..7dae5495 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxObject.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectContent.cs @@ -3,19 +3,10 @@ using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.Tiled { - public class TmxObject + public class TiledMapObjectContent { - public TmxObject() - { - Gid = -1; - Visible = true; - } - [XmlAttribute(DataType = "int", AttributeName = "id")] - public int Id { get; set; } - - [XmlAttribute(DataType = "int", AttributeName = "gid")] - public int Gid { get; set; } + public int Identifier { get; set; } [XmlAttribute(DataType = "string", AttributeName = "name")] public string Name { get; set; } @@ -37,21 +28,30 @@ namespace MonoGame.Extended.Content.Pipeline.Tiled [XmlAttribute(DataType = "float", AttributeName = "rotation")] public float Rotation { get; set; } - + [XmlAttribute(DataType = "boolean", AttributeName = "visible")] public bool Visible { get; set; } - + [XmlArray("properties")] [XmlArrayItem("property")] - public List Properties { get; set; } + public List Properties { get; set; } + + [XmlAttribute(DataType = "unsignedInt", AttributeName = "gid")] + public uint GlobalIdentifier { get; set; } [XmlElement(ElementName = "ellipse")] - public TmxEllipse Ellipse { get; set; } + public TiledMapEllipseContent Ellipse { get; set; } [XmlElement(ElementName = "polygon")] - public TmxPolygon Polygon { get; set; } + public TiledMapPolygonContent Polygon { get; set; } [XmlElement(ElementName = "polyline")] - public TmxPolyline Polyline { get; set; } + public TiledMapPolylineContent Polyline { get; set; } + + public TiledMapObjectContent() + { + GlobalIdentifier = 0; + Visible = true; + } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectDrawOrderContent.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectDrawOrderContent.cs new file mode 100644 index 00000000..ad717990 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectDrawOrderContent.cs @@ -0,0 +1,10 @@ +using System.Xml.Serialization; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + public enum TiledMapObjectDrawOrderContent : byte + { + [XmlEnum(Name = "topdown")] TopDown, + [XmlEnum(Name = "index")] Manual + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectLayerContent.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectLayerContent.cs new file mode 100644 index 00000000..bbcd538f --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapObjectLayerContent.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using System.Xml.Serialization; +using MonoGame.Extended.Tiled; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + public class TiledMapObjectLayerContent : TiledMapLayerContent + { + [XmlAttribute(AttributeName = "color")] + public string Color { get; set; } + + [XmlElement(ElementName = "object")] + public List Objects { get; set; } + + [XmlAttribute(AttributeName = "draworder")] + public TiledMapObjectDrawOrderContent DrawOrder { get; set; } + + public TiledMapObjectLayerContent() + : base(TiledMapLayerType.ObjectLayer) + { + Objects = new List(); + } + + public override string ToString() + { + return Name; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapOrientationContent.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapOrientationContent.cs new file mode 100644 index 00000000..87dcc2b2 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapOrientationContent.cs @@ -0,0 +1,11 @@ +using System.Xml.Serialization; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + public enum TiledMapOrientationContent : byte + { + [XmlEnum(Name = "orthogonal")] Orthogonal, + [XmlEnum(Name = "isometric")] Isometric, + [XmlEnum(Name = "staggered")] Staggered + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxPolygon.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPolygonContent.cs similarity index 82% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxPolygon.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPolygonContent.cs index 141880b6..3db3158d 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxPolygon.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPolygonContent.cs @@ -2,7 +2,7 @@ using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.Tiled { - public class TmxPolygon + public class TiledMapPolygonContent { [XmlAttribute(AttributeName = "points")] public string Points { get; set; } diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxPolyline.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPolylineContent.cs similarity index 82% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxPolyline.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPolylineContent.cs index c8efd4b9..f8e22103 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxPolyline.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPolylineContent.cs @@ -2,7 +2,7 @@ using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.Tiled { - public class TmxPolyline + public class TiledMapPolylineContent { [XmlAttribute(AttributeName = "points")] public string Points { get; set; } diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapProcessor.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapProcessor.cs new file mode 100644 index 00000000..108666b7 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapProcessor.cs @@ -0,0 +1,359 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.IO; +using System.IO.Compression; +using System.Linq; +using Microsoft.Xna.Framework.Content.Pipeline; +using MonoGame.Extended.Content.Pipeline.Graphics; +using MonoGame.Extended.Tiled; +using MonoGame.Utilities; +using CompressionMode = System.IO.Compression.CompressionMode; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + [ContentProcessor(DisplayName = "Tiled Map Processor - MonoGame.Extended")] + public class TiledMapProcessor : ContentProcessor + { + public override TiledMapContent Process(TiledMapContent map, ContentProcessorContext context) + { + ContentLogger.Logger = context.Logger; + + var previousWorkingDirectory = Environment.CurrentDirectory; + var newWorkingDirectory = Path.GetDirectoryName(map.FilePath); + if (string.IsNullOrEmpty(newWorkingDirectory)) + throw new NullReferenceException(); + Environment.CurrentDirectory = newWorkingDirectory; + + foreach (var layer in map.Layers) + { + var imageLayer = layer as TiledMapImageLayerContent; + if (imageLayer != null) + { + ContentLogger.Log($"Processing image layer '{imageLayer.Name}'"); + + var model = CreateImageLayerModel(imageLayer); + layer.Models = new[] + { + model + }; + + ContentLogger.Log($"Processed image layer '{imageLayer.Name}'"); + continue; + } + + var tileLayer = layer as TiledMapTileLayerContent; + if (tileLayer == null) + continue; + + var data = tileLayer.Data; + var encodingType = data.Encoding ?? "xml"; + var compressionType = data.Compression ?? "xml"; + + ContentLogger.Log( + $"Processing tile layer '{tileLayer.Name}': Encoding: '{encodingType}', Compression: '{compressionType}'"); + + var tileData = DecodeTileLayerData(encodingType, tileLayer); + var tiles = CreateTiles(map.RenderOrder, map.Width, map.Height, tileData); + tileLayer.Tiles = tiles; + + layer.Models = CreateTileLayerModels(map, tileLayer.Name, tiles).ToArray(); + + ContentLogger.Log($"Processed tile layer '{tileLayer}': {tiles.Length} tiles"); + } + + Environment.CurrentDirectory = previousWorkingDirectory; + + return map; + } + + private static List DecodeTileLayerData(string encodingType, + TiledMapTileLayerContent tileLayer) + { + List tiles; + + switch (encodingType) + { + case "xml": + tiles = tileLayer.Data.Tiles; + break; + case "csv": + tiles = DecodeCommaSeperatedValuesData(tileLayer.Data); + break; + case "base64": + tiles = DecodeBase64Data(tileLayer.Data, tileLayer.Width, tileLayer.Height); + break; + default: + throw new NotSupportedException($"The tile layer encoding '{encodingType}' is not supported."); + } + + return tiles; + } + + private static TiledMapTile[] CreateTiles(TiledMapTileDrawOrderContent renderOrder, int mapWidth, int mapHeight, + List tileData) + { + TiledMapTile[] tiles; + + switch (renderOrder) + { + case TiledMapTileDrawOrderContent.LeftDown: + tiles = CreateTilesInLeftDownOrder(tileData, mapWidth, mapHeight).ToArray(); + break; + case TiledMapTileDrawOrderContent.LeftUp: + tiles = CreateTilesInLeftUpOrder(tileData, mapWidth, mapHeight).ToArray(); + break; + case TiledMapTileDrawOrderContent.RightDown: + tiles = CreateTilesInRightDownOrder(tileData, mapWidth, mapHeight).ToArray(); + break; + case TiledMapTileDrawOrderContent.RightUp: + tiles = CreateTilesInRightUpOrder(tileData, mapWidth, mapHeight).ToArray(); + break; + default: + throw new NotSupportedException($"{renderOrder} is not supported."); + } + + return tiles.ToArray(); + } + + private static IEnumerable CreateTilesInLeftDownOrder( + // ReSharper disable once SuggestBaseTypeForParameter + List tileLayerData, int mapWidth, int mapHeight) + { + for (var y = 0; y < mapHeight; y++) + for (var x = mapWidth - 1; x >= 0; x--) + { + var dataIndex = x + y * mapWidth; + var globalIdentifier = tileLayerData[dataIndex].GlobalIdentifier; + if (globalIdentifier == 0) + continue; + var tile = new TiledMapTile(globalIdentifier, (ushort) x, (ushort) y); + yield return tile; + } + } + + private static IEnumerable CreateTilesInLeftUpOrder( + // ReSharper disable once SuggestBaseTypeForParameter + List tileLayerData, int mapWidth, int mapHeight) + { + for (var y = mapHeight - 1; y >= 0; y--) + for (var x = mapWidth - 1; x >= 0; x--) + { + var dataIndex = x + y * mapWidth; + var globalIdentifier = tileLayerData[dataIndex].GlobalIdentifier; + if (globalIdentifier == 0) + continue; + var tile = new TiledMapTile(globalIdentifier, (ushort) x, (ushort) y); + yield return tile; + } + } + + private static IEnumerable CreateTilesInRightDownOrder( + // ReSharper disable once SuggestBaseTypeForParameter + List tileLayerData, int mapWidth, int mapHeight) + { + for (var y = 0; y < mapHeight; y++) + for (var x = 0; x < mapWidth; x++) + { + var dataIndex = x + y * mapWidth; + var globalIdentifier = tileLayerData[dataIndex].GlobalIdentifier; + if (globalIdentifier == 0) + continue; + var tile = new TiledMapTile(globalIdentifier, (ushort) x, (ushort) y); + yield return tile; + } + } + + private static IEnumerable CreateTilesInRightUpOrder( + // ReSharper disable once SuggestBaseTypeForParameter + List tileLayerData, int mapWidth, int mapHeight) + { + for (var y = mapHeight - 1; y >= 0; y--) + for (var x = mapWidth - 1; x >= 0; x--) + { + var dataIndex = x + y * mapWidth; + var globalIdentifier = tileLayerData[dataIndex].GlobalIdentifier; + if (globalIdentifier == 0) + continue; + var tile = new TiledMapTile(globalIdentifier, (ushort) x, (ushort) y); + yield return tile; + } + } + + private static List DecodeBase64Data(TiledMapTileLayerDataContent data, int width, + int height) + { + var tileList = new List(); + var encodedData = data.Value.Trim(); + var decodedData = Convert.FromBase64String(encodedData); + + using (var stream = OpenStream(decodedData, data.Compression)) + { + using (var reader = new BinaryReader(stream)) + { + data.Tiles = new List(); + + for (var y = 0; y < width; y++) + for (var x = 0; x < height; x++) + { + var gid = reader.ReadUInt32(); + tileList.Add(new TiledMapTileContent + { + GlobalIdentifier = gid + }); + } + } + } + + return tileList; + } + + private static List DecodeCommaSeperatedValuesData(TiledMapTileLayerDataContent data) + { + return data.Value + .Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries) + .Select(uint.Parse) + .Select(x => new TiledMapTileContent {GlobalIdentifier = x}) + .ToList(); + } + + private static Stream OpenStream(byte[] decodedData, string compressionMode) + { + var memoryStream = new MemoryStream(decodedData, false); + + switch (compressionMode) + { + case "gzip": + return new GZipStream(memoryStream, CompressionMode.Decompress); + case "zlib": + return new ZlibStream(memoryStream, Utilities.CompressionMode.Decompress); + default: + return memoryStream; + } + } + + private static TiledMapLayerModelContent CreateImageLayerModel(TiledMapImageLayerContent imageLayer) + { + var model = new TiledMapLayerModelContent(imageLayer.Name, imageLayer.Image); + // sprite/tile; same thing + model.AddTileIndices(); + model.AddTileVertices(new Point2(imageLayer.X, imageLayer.Y)); + + return model; + } + + private static IEnumerable CreateTileLayerModels(TiledMapContent map, + string layerName, IEnumerable tiles) + { + // the code below builds the geometry (triangles) for every tile + // for every unique tileset used by a tile in a layer, we are going to end up with a different model (list of vertices and list of indices pair) + // we also could end up with more models if the map is very large + // regardless, each model is going to require one draw call to render at runtime + + var modelsByTileset = new Dictionary>(); + + // loop through all the tiles in the proper render order, building the geometry for each tile + // by processing the tiles in the correct rendering order we ensure the geometry for the tiles will be rendered correctly later using the painter's algorithm + foreach (var tile in tiles) + { + // get the tileset for this tile + var tileGlobalIdentifier = tile.GlobalIdentifier; + var tileset = map.Tilesets.FirstOrDefault(x => x.ContainsGlobalIdentifier(tileGlobalIdentifier)); + if (tileset == null) + throw new NullReferenceException( + $"Could not find tileset for global tile identifier '{tileGlobalIdentifier}'"); + + var localTileIdentifier = tileGlobalIdentifier - tileset.FirstGlobalIdentifier; + Debug.Assert(tileset != null); + + // check if this tile is animated + var tilesetTile = tileset.Tiles.FirstOrDefault(x => x.LocalIdentifier == localTileIdentifier); + var isAnimatedTile = tilesetTile?.Frames != null && tilesetTile.Frames.Count > 0; + + // check if we already have built a list of models for this tileset + TiledMapLayerModelContent model; + List models; + + if (modelsByTileset.TryGetValue(tileset, out models)) + { + // if we found the list of models for this tileset, try to use the last model added + // (assuming the the ones before the last are all full) + model = models.FindLast(x => x is TiledMapLayerAnimatedModelContent == isAnimatedTile); + // since it is possible that the correct type of model was not added yet we might have to create the correct model now + if (model == null) + { + model = isAnimatedTile + ? new TiledMapLayerAnimatedModelContent(layerName, tileset) + : new TiledMapLayerModelContent(layerName, tileset); + models.Add(model); + } + } + else + { + // if we have not found the list of models for this tileset, we need to create the list and start a new model of the correct type + models = new List(); + model = isAnimatedTile + ? new TiledMapLayerAnimatedModelContent(layerName, tileset) + : new TiledMapLayerModelContent(layerName, tileset); + models.Add(model); + modelsByTileset.Add(tileset, models); + } + + // check if the current model is full + if (model.Vertices.Count + TiledMapHelper.VerticesPerTile > TiledMapHelper.MaximumVerticesPerModel) + { + // if the current model is full, we need to start a new one + model = isAnimatedTile + ? new TiledMapLayerAnimatedModelContent(layerName, tileset) + : new TiledMapLayerModelContent(layerName, tileset); + models.Add(model); + } + + // if the tile is animated, record the index of animated tile for the tilset so we can get the correct texture coordinates at runtime + if (isAnimatedTile) + { + var animatedModel = (TiledMapLayerAnimatedModelContent) model; + animatedModel.AddAnimatedTile(tilesetTile); + } + + // fixes a problem + if (tileset.Columns == 0) + tileset.Columns = 1; + + // build the geometry for the tile + var position = GetTilePosition(map, tile); + var sourceRectangle = TiledMapHelper.GetTileSourceRectangle(localTileIdentifier, tileset.TileWidth, + tileset.TileHeight, tileset.Columns, tileset.Margin, tileset.Spacing); + var flipFlags = tile.Flags; + model.AddTileIndices(); + model.AddTileVertices(position, sourceRectangle, flipFlags); + } + + // for each tileset used in this layer + foreach (var keyValuePair in modelsByTileset) + { + var models = keyValuePair.Value; + + // and for each model apart of a tileset + foreach (var model in models) + yield return model; + } + } + + private static Point2 GetTilePosition(TiledMapContent map, TiledMapTile mapTile) + { + switch (map.Orientation) + { + case TiledMapOrientationContent.Orthogonal: + return TiledMapHelper.GetOrthogonalPosition(mapTile.X, mapTile.Y, map.TileWidth, map.TileHeight); + case TiledMapOrientationContent.Isometric: + return TiledMapHelper.GetIsometricPosition(mapTile.X, mapTile.Y, map.TileWidth, map.TileHeight); + case TiledMapOrientationContent.Staggered: + throw new NotImplementedException("Staggered maps are not yet implemented."); + default: + throw new NotSupportedException($"Tiled Map {map.Orientation} is not supported."); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxProperty.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPropertyContent.cs similarity index 71% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxProperty.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPropertyContent.cs index a13eabdc..e3d491e1 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxProperty.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapPropertyContent.cs @@ -2,21 +2,17 @@ using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.Tiled { - public class TmxProperty + public class TiledMapPropertyContent { - public TmxProperty() - { - } - - public override string ToString() - { - return string.Format("{0}: {1}", Name, Value); - } - [XmlAttribute(AttributeName = "name")] public string Name { get; set; } [XmlAttribute(AttributeName = "value")] public string Value { get; set; } + + public override string ToString() + { + return $"{Name}: {Value}"; + } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxTerrain.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTerrainContent.cs similarity index 60% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxTerrain.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTerrainContent.cs index a6df8f47..d6179857 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxTerrain.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTerrainContent.cs @@ -3,26 +3,25 @@ using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.Tiled { - public class TmxTerrain + public class TiledMapTerrainContent { - public TmxTerrain() - { - Properties = new List(); - } - - public override string ToString() - { - return Name; - } - [XmlAttribute(AttributeName = "name")] public string Name { get; set; } [XmlAttribute(AttributeName = "tile")] public string TileId { get; set; } - [XmlArray("properties")] - [XmlArrayItem("property")] - public List Properties { get; set; } + [XmlArray("properties"), XmlArrayItem("property")] + public List Properties { get; set; } + + public TiledMapTerrainContent() + { + Properties = new List(); + } + + public override string ToString() + { + return Name; + } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileDrawOrderContent.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileDrawOrderContent.cs new file mode 100644 index 00000000..c4200ccd --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileDrawOrderContent.cs @@ -0,0 +1,12 @@ +using System.Xml.Serialization; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + public enum TiledMapTileDrawOrderContent : byte + { + [XmlEnum(Name = "right-down")] RightDown, + [XmlEnum(Name = "right-up")] RightUp, + [XmlEnum(Name = "left-down")] LeftDown, + [XmlEnum(Name = "left-up")] LeftUp + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxTileLayer.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileLayerContent.cs similarity index 60% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxTileLayer.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileLayerContent.cs index 433cb987..dd28b2e8 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxTileLayer.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileLayerContent.cs @@ -1,13 +1,10 @@ using System.Xml.Serialization; +using MonoGame.Extended.Tiled; namespace MonoGame.Extended.Content.Pipeline.Tiled { - public class TmxTileLayer : TmxLayer + public class TiledMapTileLayerContent : TiledMapLayerContent { - public TmxTileLayer() - { - } - [XmlAttribute(AttributeName = "x")] public int X { get; set; } @@ -19,8 +16,16 @@ namespace MonoGame.Extended.Content.Pipeline.Tiled [XmlAttribute(AttributeName = "height")] public int Height { get; set; } - + [XmlElement(ElementName = "data")] - public TmxData Data { get; set; } + public TiledMapTileLayerDataContent Data { get; set; } + + [XmlIgnore] + public TiledMapTile[] Tiles { get; set; } + + public TiledMapTileLayerContent() + : base(TiledMapLayerType.TileLayer) + { + } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxData.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileLayerDataContent.cs similarity index 57% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxData.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileLayerDataContent.cs index eed9ea24..4f5255fc 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxData.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileLayerDataContent.cs @@ -3,18 +3,13 @@ using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.Tiled { - public class TmxData + public struct TiledMapTileContent { - public TmxData() - { - Tiles = new List(); - } - - public override string ToString() - { - return string.Format("{0} {1}", Encoding, Compression); - } + [XmlAttribute(AttributeName = "gid")] public uint GlobalIdentifier; + } + public class TiledMapTileLayerDataContent + { [XmlAttribute(AttributeName = "encoding")] public string Encoding { get; set; } @@ -22,9 +17,19 @@ namespace MonoGame.Extended.Content.Pipeline.Tiled public string Compression { get; set; } [XmlElement(ElementName = "tile")] - public List Tiles { get; set; } + public List Tiles { get; set; } [XmlText] public string Value { get; set; } + + public TiledMapTileLayerDataContent() + { + Tiles = new List(); + } + + public override string ToString() + { + return $"{Encoding} {Compression}"; + } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileOffsetContent.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileOffsetContent.cs new file mode 100644 index 00000000..3586bdda --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTileOffsetContent.cs @@ -0,0 +1,17 @@ +using System.Xml.Serialization; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + [XmlRoot(ElementName = "tileoffset")] + public class TiledMapTileOffsetContent + { + [XmlAttribute(AttributeName = "x")] public int X; + + [XmlAttribute(AttributeName = "y")] public int Y; + + public override string ToString() + { + return $"{X}, {Y}"; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxTileset.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetContent.cs similarity index 51% rename from Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxTileset.cs rename to Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetContent.cs index e3db023f..71a58328 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TmxTileset.cs +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetContent.cs @@ -4,24 +4,10 @@ using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.Tiled { [XmlRoot(ElementName = "tileset")] - public class TmxTileset + public class TiledMapTilesetContent { - public TmxTileset() - { - TileOffset = new TmxTileOffset(); - Tiles = new List(); - Properties = new List(); - TerrainTypes = new List(); - - } - - public override string ToString() - { - return $"{Name}: {Image}"; - } - [XmlAttribute(AttributeName = "firstgid")] - public int FirstGid { get; set; } + public int FirstGlobalIdentifier { get; set; } [XmlAttribute(AttributeName = "source")] public string Source { get; set; } @@ -41,21 +27,45 @@ namespace MonoGame.Extended.Content.Pipeline.Tiled [XmlAttribute(AttributeName = "margin")] public int Margin { get; set; } + [XmlAttribute(AttributeName = "columns")] + public int Columns { get; set; } + + [XmlAttribute(AttributeName = "tilecount")] + public int TileCount { get; set; } + [XmlElement(ElementName = "tileoffset")] - public TmxTileOffset TileOffset { get; set; } + public TiledMapTileOffsetContent TileOffset { get; set; } [XmlElement(ElementName = "tile")] - public List Tiles { get; set; } + public List Tiles { get; set; } [XmlArray("properties")] [XmlArrayItem("property")] - public List Properties { get; set; } + public List Properties { get; set; } [XmlElement(ElementName = "image")] - public TmxImage Image { get; set; } + public TiledMapImageContent Image { get; set; } [XmlArray("terraintypes")] [XmlArrayItem("terrain")] - public List TerrainTypes { get; set; } + public List TerrainTypes { get; set; } + + public TiledMapTilesetContent() + { + TileOffset = new TiledMapTileOffsetContent(); + Tiles = new List(); + Properties = new List(); + TerrainTypes = new List(); + } + + public bool ContainsGlobalIdentifier(int globalIdentifier) + { + return (globalIdentifier >= FirstGlobalIdentifier) && (globalIdentifier < FirstGlobalIdentifier + TileCount); + } + + public override string ToString() + { + return $"{Name}: {Image}"; + } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetTileAnimationFrameContent.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetTileAnimationFrameContent.cs new file mode 100644 index 00000000..002847ae --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetTileAnimationFrameContent.cs @@ -0,0 +1,18 @@ +using System.Xml.Serialization; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + public class TiledMapTilesetTileAnimationFrameContent + { + [XmlAttribute(AttributeName = "tileid")] + public int TileIdentifier { get; set; } + + [XmlAttribute(AttributeName = "duration")] + public int Duration { get; set; } + + public override string ToString() + { + return $"TileID: {TileIdentifier}, Duration: {Duration}"; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetTileContent.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetTileContent.cs new file mode 100644 index 00000000..33fe6c53 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapTilesetTileContent.cs @@ -0,0 +1,39 @@ +using System.Collections.Generic; +using System.Xml.Serialization; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + public class TiledMapTilesetTileContent + { + [XmlAttribute(AttributeName = "id")] + public int LocalIdentifier { get; set; } + + [XmlElement(ElementName = "terrain")] + public TiledMapTerrainContent Terrain { get; set; } + + [XmlAttribute(AttributeName = "probability")] + public float Probability { get; set; } + + [XmlElement(ElementName = "image")] + public TiledMapImageContent Image { get; set; } + + [XmlArray("animation")] + [XmlArrayItem("frame")] + public List Frames { get; set; } + + [XmlArray("properties")] + [XmlArrayItem("property")] + public List Properties { get; set; } + + public TiledMapTilesetTileContent() + { + Probability = 1.0f; + Properties = new List(); + } + + public override string ToString() + { + return LocalIdentifier.ToString(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapWriter.cs b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapWriter.cs new file mode 100644 index 00000000..d2f2b097 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/Tiled/TiledMapWriter.cs @@ -0,0 +1,287 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content.Pipeline; +using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler; +using MonoGame.Extended.Content.Pipeline.Graphics; +using MonoGame.Extended.Tiled; + +namespace MonoGame.Extended.Content.Pipeline.Tiled +{ + [ContentTypeWriter] + public class TiledMapWriter : ContentTypeWriter + { + protected override void Write(ContentWriter writer, TiledMapContent map) + { + WriteMetaData(writer, map); + WriteTilesets(writer, map.Tilesets); + WriteLayers(writer, map.Layers); + } + + private static void WriteMetaData(ContentWriter writer, TiledMapContent map) + { + writer.Write(map.Width); + writer.Write(map.Height); + writer.Write(map.TileWidth); + writer.Write(map.TileHeight); + writer.Write(ColorHelper.FromHex(map.BackgroundColor)); + writer.Write((byte)map.RenderOrder); + writer.Write((byte)map.Orientation); + writer.WriteTiledMapProperties(map.Properties); + } + + private static void WriteTilesets(ContentWriter output, IReadOnlyCollection tilesets) + { + output.Write(tilesets.Count); + foreach (var tileset in tilesets) + WriteTileset(output, tileset); + } + + private static void WriteTileset(ContentWriter output, TiledMapTilesetContent tileset) + { + output.Write(Path.ChangeExtension(tileset.Image.Source, null)); + output.Write(tileset.FirstGlobalIdentifier); + output.Write(tileset.TileWidth); + output.Write(tileset.TileHeight); + output.Write(tileset.TileCount); + output.Write(tileset.Spacing); + output.Write(tileset.Margin); + + output.Write(tileset.Columns); + + output.Write(tileset.Tiles.Count); + foreach (var tilesetTile in tileset.Tiles) + WriteTilesetTile(output, tilesetTile); + + output.WriteTiledMapProperties(tileset.Properties); + } + + private static void WriteTilesetTile(ContentWriter output, TiledMapTilesetTileContent tilesetTile) + { + output.Write(tilesetTile.LocalIdentifier); + + output.Write(tilesetTile.Frames.Count); + foreach (var frame in tilesetTile.Frames) + { + output.Write(frame.TileIdentifier); + output.Write(frame.Duration); + } + + output.WriteTiledMapProperties(tilesetTile.Properties); + } + + private static void WriteLayers(ContentWriter output, IReadOnlyCollection layers) + { + output.Write(layers.Count); + foreach (var layer in layers) + WriteLayer(output, layer); + } + + private static void WriteLayer(ContentWriter output, TiledMapLayerContent layer) + { + output.Write((byte)layer.Type); + + output.Write(layer.Name ?? string.Empty); + output.Write(layer.Visible); + output.Write(layer.Opacity); + output.Write(layer.OffsetX); + output.Write(layer.OffsetY); + + output.WriteTiledMapProperties(layer.Properties); + + switch (layer.Type) + { + case TiledMapLayerType.ImageLayer: + WriteImageLayer(output, (TiledMapImageLayerContent)layer); + break; + case TiledMapLayerType.TileLayer: + WriteTileLayer(output, (TiledMapTileLayerContent)layer); + break; + case TiledMapLayerType.ObjectLayer: + WriteObjectLayer(output, (TiledMapObjectLayerContent)layer); + break; + default: + throw new ArgumentOutOfRangeException(nameof(layer.Type)); + } + + if (layer.Type != TiledMapLayerType.ObjectLayer) + WriteModels(output, layer.Models); + } + + private static void WriteImageLayer(ContentWriter output, TiledMapImageLayerContent imageLayer) + { + var textureAssetName = Path.ChangeExtension(imageLayer.Image.Source, null); + output.Write(textureAssetName); + output.Write(new Vector2(imageLayer.X, imageLayer.Y)); + } + + // ReSharper disable once SuggestBaseTypeForParameter + private static void WriteTileLayer(ContentWriter output, TiledMapTileLayerContent tileLayer) + { + output.Write(tileLayer.Width); + output.Write(tileLayer.Height); + + output.Write(tileLayer.Tiles.Length); + + foreach (var tile in tileLayer.Tiles) + { + output.Write(tile.GlobalTileIdentifierWithFlags); + output.Write(tile.X); + output.Write(tile.Y); + } + } + + private static void WriteObjectLayer(ContentWriter output, TiledMapObjectLayerContent layer) + { + output.Write(ColorHelper.FromHex(layer.Color)); + output.Write((byte)layer.DrawOrder); + + output.Write(layer.Objects.Count); + + foreach (var @object in layer.Objects) + WriteObject(output, @object); + } + + + private static void WriteObject(ContentWriter output, TiledMapObjectContent @object) + { + var type = GetObjectType(@object); + + output.Write((byte)type); + + output.Write(@object.Identifier); + output.Write(@object.Name ?? string.Empty); + output.Write(@object.Type ?? string.Empty); + output.Write(@object.X); + output.Write(@object.Y); + output.Write(@object.Width); + output.Write(@object.Height); + output.Write(@object.Rotation); + output.Write(@object.Visible); + + output.WriteTiledMapProperties(@object.Properties); + + switch (type) + { + case TiledMapObjectType.Rectangle: + case TiledMapObjectType.Ellipse: + break; + case TiledMapObjectType.Tile: + output.Write(@object.GlobalIdentifier); + break; + case TiledMapObjectType.Polygon: + WritePolyPoints(output, @object.Polygon.Points); + break; + case TiledMapObjectType.Polyline: + WritePolyPoints(output, @object.Polyline.Points); + break; + default: + throw new ArgumentOutOfRangeException(); + } + } + + // ReSharper disable once SuggestBaseTypeForParameter + private static void WritePolyPoints(ContentWriter writer, string @string) + { + var stringPoints = @string.Split(' '); + + writer.Write(stringPoints.Length); + + foreach (var stringPoint in stringPoints) + { + var xy = stringPoint.Split(','); + var x = float.Parse(xy[0], CultureInfo.InvariantCulture.NumberFormat); + writer.Write(x); + var y = float.Parse(xy[1], CultureInfo.InvariantCulture.NumberFormat); + writer.Write(y); + } + } + + public static TiledMapObjectType GetObjectType(TiledMapObjectContent @object) + { + if (@object.GlobalIdentifier > 0) + return TiledMapObjectType.Tile; + + if (@object.Ellipse != null) + return TiledMapObjectType.Ellipse; + + if (@object.Polygon != null) + return TiledMapObjectType.Polygon; + + // ReSharper disable once ConvertIfStatementToReturnStatement + if (@object.Polyline != null) + return TiledMapObjectType.Polyline; + + return TiledMapObjectType.Rectangle; + } + + private static void WriteModels(ContentWriter output, IReadOnlyCollection models) + { + output.Write(models.Count); + + var animatedModelsCount = models.Count(x => x is TiledMapLayerAnimatedModelContent); + output.Write(animatedModelsCount); + + foreach (var model in models) + { + var animatedModel = model as TiledMapLayerAnimatedModelContent; + if (animatedModel != null) + { + output.Write(true); + WriteAnimatedModel(output, animatedModel); + } + else + { + output.Write(false); + WriteModel(output, model); + } + } + } + + // ReSharper disable once SuggestBaseTypeForParameter + private static void WriteModel(ContentWriter output, TiledMapLayerModelContent model) + { + output.Write(model.LayerName); + output.Write(model.TextureAssetName); + + var vertexCount = model.Vertices.Count; + output.Write(vertexCount); + foreach (var vertex in model.Vertices) + { + output.Write(vertex.Position.X); + output.Write(vertex.Position.Y); + output.Write(vertex.TextureCoordinate.X); + output.Write(vertex.TextureCoordinate.Y); + } + + var indexCount = model.Indices.Count; + output.Write(indexCount); + foreach (var index in model.Indices) + output.Write(index); + } + + private static void WriteAnimatedModel(ContentWriter output, TiledMapLayerAnimatedModelContent model) + { + WriteModel(output, model); + + output.Write(model.Tileset.FirstGlobalIdentifier); + + output.Write(model.AnimatedTilesetTiles.Count); + foreach (var animatedTilesetTile in model.AnimatedTilesetTiles) + output.Write(animatedTilesetTile.LocalIdentifier); + } + + public override string GetRuntimeType(TargetPlatform targetPlatform) + { + return "MonoGame.Extended.Tiled.TiledMap, MonoGame.Extended.Tiled"; + } + + public override string GetRuntimeReader(TargetPlatform targetPlatform) + { + return "MonoGame.Extended.Tiled.TiledMapReader, MonoGame.Extended.Tiled"; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tiled/packages.config b/Source/MonoGame.Extended.Content.Pipeline.Tiled/packages.config new file mode 100644 index 00000000..777c5e44 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline.Tiled/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontChar.cs b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontChar.cs index 76fe2a4d..c012da4d 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontChar.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontChar.cs @@ -1,42 +1,41 @@ -using System; using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.BitmapFonts { - // ---- AngelCode BmFont XML serializer ---------------------- - // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- - // ---- There's no license restrictions, use as you will. ---- - // ---- Credits to http://www.angelcode.com/ ----------------- - public class BitmapFontChar - { - [XmlAttribute ("id")] - public int Id { get; set; } - - [XmlAttribute ("x")] - public int X { get; set; } - - [XmlAttribute ("y")] - public int Y { get; set; } - - [XmlAttribute ("width")] - public int Width { get; set; } - - [XmlAttribute ("height")] - public int Height { get; set; } - - [XmlAttribute ("xoffset")] - public int XOffset { get; set; } - - [XmlAttribute ("yoffset")] - public int YOffset { get; set; } - - [XmlAttribute ("xadvance")] - public int XAdvance { get; set; } - - [XmlAttribute ("page")] - public int Page { get; set; } - - [XmlAttribute ("chnl")] - public int Channel { get; set; } - } -} + // ---- AngelCode BmFont XML serializer ---------------------- + // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- + // ---- There's no license restrictions, use as you will. ---- + // ---- Credits to http://www.angelcode.com/ ----------------- + public class BitmapFontChar + { + [XmlAttribute("id")] + public int Id { get; set; } + + [XmlAttribute("x")] + public int X { get; set; } + + [XmlAttribute("y")] + public int Y { get; set; } + + [XmlAttribute("width")] + public int Width { get; set; } + + [XmlAttribute("height")] + public int Height { get; set; } + + [XmlAttribute("xoffset")] + public int XOffset { get; set; } + + [XmlAttribute("yoffset")] + public int YOffset { get; set; } + + [XmlAttribute("xadvance")] + public int XAdvance { get; set; } + + [XmlAttribute("page")] + public int Page { get; set; } + + [XmlAttribute("chnl")] + public int Channel { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontCommon.cs b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontCommon.cs index bd62342f..6247fcf0 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontCommon.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontCommon.cs @@ -1,42 +1,41 @@ -using System; using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.BitmapFonts { - // ---- AngelCode BmFont XML serializer ---------------------- - // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- - // ---- There's no license restrictions, use as you will. ---- - // ---- Credits to http://www.angelcode.com/ ----------------- + // ---- AngelCode BmFont XML serializer ---------------------- + // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- + // ---- There's no license restrictions, use as you will. ---- + // ---- Credits to http://www.angelcode.com/ ----------------- public class BitmapFontCommon - { + { [XmlAttribute("lineHeight")] - public int LineHeight { get; set; } + public int LineHeight { get; set; } [XmlAttribute("base")] - public int Base { get; set; } + public int Base { get; set; } [XmlAttribute("scaleW")] - public int ScaleW { get; set; } + public int ScaleW { get; set; } [XmlAttribute("scaleH")] - public int ScaleH { get; set; } + public int ScaleH { get; set; } [XmlAttribute("pages")] - public int Pages { get; set; } + public int Pages { get; set; } [XmlAttribute("packed")] - public int Packed { get; set; } + public int Packed { get; set; } [XmlAttribute("alphaChnl")] - public int AlphaChannel { get; set; } + public int AlphaChannel { get; set; } [XmlAttribute("redChnl")] - public int RedChannel { get; set; } + public int RedChannel { get; set; } [XmlAttribute("greenChnl")] - public int GreenChannel { get; set; } + public int GreenChannel { get; set; } [XmlAttribute("blueChnl")] - public int BlueChannel { get; set; } - } -} + public int BlueChannel { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontFile.cs b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontFile.cs index d51671bd..db772708 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontFile.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontFile.cs @@ -3,29 +3,29 @@ using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.BitmapFonts { - // ---- AngelCode BmFont XML serializer ---------------------- - // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- - // ---- There's no license restrictions, use as you will. ---- - // ---- Credits to http://www.angelcode.com/ ----------------- - [XmlRoot("font")] + // ---- AngelCode BmFont XML serializer ---------------------- + // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- + // ---- There's no license restrictions, use as you will. ---- + // ---- Credits to http://www.angelcode.com/ ----------------- + [XmlRoot("font")] public class BitmapFontFile - { - [XmlElement("info")] - public BitmapFontInfo Info { get; set; } - - [XmlElement("common")] - public BitmapFontCommon Common { get; set; } + { + [XmlElement("info")] + public BitmapFontInfo Info { get; set; } - [XmlArray("pages")] - [XmlArrayItem("page")] - public List Pages { get; set; } + [XmlElement("common")] + public BitmapFontCommon Common { get; set; } - [XmlArray("chars")] - [XmlArrayItem("char")] - public List Chars { get; set; } - - [XmlArray("kernings")] - [XmlArrayItem("kerning")] - public List Kernings { get; set; } - } -} + [XmlArray("pages")] + [XmlArrayItem("page")] + public List Pages { get; set; } + + [XmlArray("chars")] + [XmlArrayItem("char")] + public List Chars { get; set; } + + [XmlArray("kernings")] + [XmlArrayItem("kerning")] + public List Kernings { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontImporter.cs b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontImporter.cs index d9bb8cea..ea4c5281 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontImporter.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontImporter.cs @@ -4,7 +4,8 @@ using Microsoft.Xna.Framework.Content.Pipeline; namespace MonoGame.Extended.Content.Pipeline.BitmapFonts { - [ContentImporter(".fnt", DefaultProcessor = "BitmapFontProcessor", DisplayName = "BMFont Importer - MonoGame.Extended")] + [ContentImporter(".fnt", DefaultProcessor = "BitmapFontProcessor", + DisplayName = "BMFont Importer - MonoGame.Extended")] public class BitmapFontImporter : ContentImporter { public override BitmapFontFile Import(string filename, ContentImporterContext context) diff --git a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontInfo.cs b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontInfo.cs index 662ebc24..1f50cf88 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontInfo.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontInfo.cs @@ -1,48 +1,47 @@ -using System; using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.BitmapFonts { - // ---- AngelCode BmFont XML serializer ---------------------- - // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- - // ---- There's no license restrictions, use as you will. ---- - // ---- Credits to http://www.angelcode.com/ ----------------- + // ---- AngelCode BmFont XML serializer ---------------------- + // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- + // ---- There's no license restrictions, use as you will. ---- + // ---- Credits to http://www.angelcode.com/ ----------------- public class BitmapFontInfo - { - [XmlAttribute ( "face" )] - public string Face { get; set; } + { + [XmlAttribute("face")] + public string Face { get; set; } - [XmlAttribute ( "size" )] - public int Size { get; set; } - - [XmlAttribute ( "bold" )] - public int Bold { get; set; } - - [XmlAttribute ( "italic" )] - public int Italic { get; set; } - - [XmlAttribute ( "charset" )] - public string CharSet { get; set; } - - [XmlAttribute ( "unicode" )] - public int Unicode { get; set; } - - [XmlAttribute ( "stretchH" )] - public int StretchHeight { get; set; } - - [XmlAttribute ( "smooth" )] - public int Smooth { get; set; } + [XmlAttribute("size")] + public int Size { get; set; } - [XmlAttribute ( "aa" )] - public int SuperSampling { get; set; } + [XmlAttribute("bold")] + public int Bold { get; set; } - [XmlAttribute ( "padding" )] - public string Padding { get; set; } + [XmlAttribute("italic")] + public int Italic { get; set; } - [XmlAttribute ( "spacing" )] - public string Spacing { get; set; } - - [XmlAttribute ( "outline" )] - public int OutLine { get; set; } - } -} + [XmlAttribute("charset")] + public string CharSet { get; set; } + + [XmlAttribute("unicode")] + public int Unicode { get; set; } + + [XmlAttribute("stretchH")] + public int StretchHeight { get; set; } + + [XmlAttribute("smooth")] + public int Smooth { get; set; } + + [XmlAttribute("aa")] + public int SuperSampling { get; set; } + + [XmlAttribute("padding")] + public string Padding { get; set; } + + [XmlAttribute("spacing")] + public string Spacing { get; set; } + + [XmlAttribute("outline")] + public int OutLine { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontKerning.cs b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontKerning.cs index a48ae2b3..77caf13c 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontKerning.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontKerning.cs @@ -1,21 +1,20 @@ -using System; using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.BitmapFonts { - // ---- AngelCode BmFont XML serializer ---------------------- - // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- - // ---- There's no license restrictions, use as you will. ---- - // ---- Credits to http://www.angelcode.com/ ----------------- + // ---- AngelCode BmFont XML serializer ---------------------- + // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- + // ---- There's no license restrictions, use as you will. ---- + // ---- Credits to http://www.angelcode.com/ ----------------- public class BitmapFontKerning - { - [XmlAttribute ( "first" )] - public int First { get; set; } - - [XmlAttribute ( "second" )] - public int Second { get; set; } - - [XmlAttribute ( "amount" )] - public int Amount { get; set; } - } -} + { + [XmlAttribute("first")] + public int First { get; set; } + + [XmlAttribute("second")] + public int Second { get; set; } + + [XmlAttribute("amount")] + public int Amount { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontPage.cs b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontPage.cs index 09bd96d3..3841ff5b 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontPage.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontPage.cs @@ -1,18 +1,17 @@ -using System; using System.Xml.Serialization; namespace MonoGame.Extended.Content.Pipeline.BitmapFonts { - // ---- AngelCode BmFont XML serializer ---------------------- - // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- - // ---- There's no license restrictions, use as you will. ---- - // ---- Credits to http://www.angelcode.com/ ----------------- + // ---- AngelCode BmFont XML serializer ---------------------- + // ---- By DeadlyDan @ deadlydan@gmail.com ------------------- + // ---- There's no license restrictions, use as you will. ---- + // ---- Credits to http://www.angelcode.com/ ----------------- public class BitmapFontPage - { - [XmlAttribute ( "id" )] + { + [XmlAttribute("id")] public int Id { get; set; } - - [XmlAttribute ( "file" )] - public string File { get; set; } - } -} + + [XmlAttribute("file")] + public string File { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontProcessor.cs b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontProcessor.cs index d78790c2..a859eb53 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontProcessor.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontProcessor.cs @@ -22,7 +22,6 @@ namespace MonoGame.Extended.Content.Pipeline.BitmapFonts } return result; - } catch (Exception ex) { diff --git a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontProcessorResult.cs b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontProcessorResult.cs index a8892fe9..5841acc5 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontProcessorResult.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontProcessorResult.cs @@ -4,13 +4,13 @@ namespace MonoGame.Extended.Content.Pipeline.BitmapFonts { public class BitmapFontProcessorResult { + public List TextureAssets { get; private set; } + public BitmapFontFile FontFile { get; private set; } + public BitmapFontProcessorResult(BitmapFontFile fontFile) { FontFile = fontFile; TextureAssets = new List(); } - - public List TextureAssets { get; private set; } - public BitmapFontFile FontFile { get; private set; } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontWriter.cs b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontWriter.cs index 9ac569f2..d64d16c2 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontWriter.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontWriter.cs @@ -1,6 +1,5 @@ using Microsoft.Xna.Framework.Content.Pipeline; using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler; -using MonoGame.Extended.BitmapFonts; namespace MonoGame.Extended.Content.Pipeline.BitmapFonts { @@ -34,12 +33,12 @@ namespace MonoGame.Extended.Content.Pipeline.BitmapFonts public override string GetRuntimeType(TargetPlatform targetPlatform) { - return typeof(BitmapFont).AssemblyQualifiedName; + return "MonoGame.Extended.BitmapFonts.BitmapFont, MonoGame.Extended"; } public override string GetRuntimeReader(TargetPlatform targetPlatform) { - return typeof(BitmapFontReader).AssemblyQualifiedName; + return "MonoGame.Extended.BitmapFonts.BitmapFontReader, MonoGame.Extended"; } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/ContentImporterResult.cs b/Source/MonoGame.Extended.Content.Pipeline/ContentImporterResult.cs index 14df3d7b..667b3636 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/ContentImporterResult.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/ContentImporterResult.cs @@ -2,13 +2,13 @@ namespace MonoGame.Extended.Content.Pipeline { public class ContentImporterResult { + public string FilePath { get; private set; } + public T Data { get; private set; } + public ContentImporterResult(string filePath, T data) { FilePath = filePath; Data = data; } - - public string FilePath { get; private set; } - public T Data { get; private set; } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/ContentLogger.cs b/Source/MonoGame.Extended.Content.Pipeline/ContentLogger.cs new file mode 100644 index 00000000..83848a19 --- /dev/null +++ b/Source/MonoGame.Extended.Content.Pipeline/ContentLogger.cs @@ -0,0 +1,14 @@ +using Microsoft.Xna.Framework.Content.Pipeline; + +namespace MonoGame.Extended.Content.Pipeline +{ + public class ContentLogger + { + public static ContentBuildLogger Logger { get; set; } + + public static void Log(string message) + { + Logger?.LogMessage(message); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/ContentWriterExtensions.cs b/Source/MonoGame.Extended.Content.Pipeline/ContentWriterExtensions.cs index fbe3b050..b8cf9d26 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/ContentWriterExtensions.cs +++ b/Source/MonoGame.Extended.Content.Pipeline/ContentWriterExtensions.cs @@ -76,4 +76,4 @@ namespace MonoGame.Extended.Content.Pipeline contentWriter.Write(value.Height); } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline/MonoGame.Extended.Content.Pipeline.csproj b/Source/MonoGame.Extended.Content.Pipeline/MonoGame.Extended.Content.Pipeline.csproj index c55fd559..e69aac3a 100644 --- a/Source/MonoGame.Extended.Content.Pipeline/MonoGame.Extended.Content.Pipeline.csproj +++ b/Source/MonoGame.Extended.Content.Pipeline/MonoGame.Extended.Content.Pipeline.csproj @@ -21,6 +21,8 @@ DEBUG;TRACE prompt 4 + true + 6 pdbonly @@ -32,17 +34,19 @@ - $(MSBuildExtensionsPath)\MonoGame\v3.0\Tools\MonoGame.Framework.dll + False + C:\Program Files (x86)\MonoGame\v3.0\Assemblies\DesktopGL\MonoGame.Framework.dll - $(MSBuildExtensionsPath)\MonoGame\v3.0\Tools\MonoGame.Framework.Content.Pipeline.dll + C:\Program Files (x86)\MSBuild\MonoGame\v3.0\Tools\MonoGame.Framework.Content.Pipeline.dll - - ..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll True + @@ -51,12 +55,6 @@ - - - - - - @@ -65,9 +63,9 @@ + - @@ -82,42 +80,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - {41724c52-3d50-45bb-81eb-3c8a247eafd1} - MonoGame.Extended - + - - - Designer - - + + + MonoGame.Extended.Entities + $version$ + + An Entity Component System for MonoGame to make MonoGame more awesome. + + Dylan Wilson + MonoGame.Extended.Entities + Craftwork Games + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE + https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png + false + + Copyright 2017 - Craftwork Games + monogame extended entity component system ecs + + + + + + + + + + + + + + + + diff --git a/Source/MonoGame.Extended.Entities/Components/EntityComponent.cs b/Source/MonoGame.Extended.Entities/Components/EntityComponent.cs new file mode 100644 index 00000000..e32d45ea --- /dev/null +++ b/Source/MonoGame.Extended.Entities/Components/EntityComponent.cs @@ -0,0 +1,79 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Entities.Components +{ + public abstract class EntityComponent : IMovable, IRotatable, IScalable + { + private Vector2 _position; + private float _rotation; + private Vector2 _scale; + + protected EntityComponent() + { + } + + public Entity Entity { get; internal set; } + + public virtual Vector2 Position + { + get { return Entity?.Position ?? _position; } + set + { + _position = value; + + if (Entity != null) + Entity.Position = _position; + } + } + + public virtual float Rotation + { + get { return Entity?.Rotation ?? _rotation; } + set + { + _rotation = value; + + if (Entity != null) + Entity.Rotation = value; + } + } + + public virtual Vector2 Scale + { + get { return Entity?.Scale ?? _scale; } + set + { + _scale = value; + + if (Entity != null) + _scale = value; + } + } + } + + + public class TransformableComponent : EntityComponent, IMovable, IRotatable, IScalable + where T : Transform2D + { + public TransformableComponent(T transformable) + { + _target = transformable; + } + + private readonly T _target; + public T Target + { + get + { + if (Entity != null) + { + _target.Position = Entity.Position; + _target.Rotation = Entity.Rotation; + _target.Scale = Entity.Scale; + } + + return _target; + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Entities/Entity.cs b/Source/MonoGame.Extended.Entities/Entity.cs new file mode 100644 index 00000000..581e7cd6 --- /dev/null +++ b/Source/MonoGame.Extended.Entities/Entity.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Entities.Components; + +namespace MonoGame.Extended.Entities +{ + public class Entity : Transform2D + { + private readonly List _components; + private readonly EntityComponentSystem _entityComponentSystem; + + public Entity(EntityComponentSystem entityComponentSystem, long id, string name) + { + _entityComponentSystem = entityComponentSystem; + _components = new List(); + + Id = id; + Name = name; + Position = Vector2.Zero; + Rotation = 0; + Scale = Vector2.One; + } + + public long Id { get; } + public string Name { get; } + public object Tag { get; set; } + + public override string ToString() + { + return Name; + } + + public void AttachComponent(EntityComponent component) + { + if (component.Entity != null) + throw new InvalidOperationException("Component already attached to another entity"); + + component.Entity = this; + + _components.Add(component); + _entityComponentSystem.AttachComponent(component); + } + + public void DetachComponent(EntityComponent component) + { + if (component.Entity != this) + throw new InvalidOperationException("Component not attached to entity"); + + component.Entity = null; + _components.Remove(component); + _entityComponentSystem.DetachComponent(component); + } + + public void Destroy(float delaySeconds = 0f) + { + _entityComponentSystem.DestroyEntity(this, delaySeconds); + } + + public T GetComponent() where T : EntityComponent + { + return GetComponents().FirstOrDefault(); + } + + public IEnumerable GetComponents() + { + return _components.OfType(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Entities/EntityComponentSystem.cs b/Source/MonoGame.Extended.Entities/EntityComponentSystem.cs new file mode 100644 index 00000000..274b14b4 --- /dev/null +++ b/Source/MonoGame.Extended.Entities/EntityComponentSystem.cs @@ -0,0 +1,149 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Entities.Components; +using MonoGame.Extended.Entities.Systems; + +namespace MonoGame.Extended.Entities +{ + public class EntityComponentSystem + { + private readonly List _components; + private readonly List _dyingEntities; + private readonly List _entities; + private readonly Dictionary _entitiesByName; + + private readonly List _systems; + private long _nextEntityId; + + public EntityComponentSystem() + { + _entities = new List(); + _entitiesByName = new Dictionary(); + _dyingEntities = new List(); + _components = new List(); + _systems = new List(); + _nextEntityId = 1; + } + + internal event EventHandler ComponentAttached; + internal event EventHandler ComponentDetached; + internal event EventHandler EntityCreated; + internal event EventHandler EntityDestroyed; + + public void RegisterSystem(ComponentSystem system) + { + if (system.Parent != null) + throw new InvalidOperationException("Component system already registered"); + + system.Parent = this; + _systems.Add(system); + } + + public Entity CreateEntity() + { + return CreateEntity(null); + } + + public Entity CreateEntity(Vector2 position, float rotation = 0) + { + return CreateEntity(null, position, rotation); + } + + public Entity CreateEntity(string name, Vector2 position, float rotation = 0) + { + var entity = CreateEntity(name); + entity.Position = position; + entity.Rotation = rotation; + return entity; + } + + public Entity CreateEntity(string name) + { + var entity = new Entity(this, _nextEntityId, name); + + _entities.Add(entity); + + if (name != null) + _entitiesByName.Add(name, entity); + + EntityCreated?.Invoke(this, entity); + _nextEntityId++; + return entity; + } + + public void DestroyEntity(Entity entity, float delaySeconds) + { + if (delaySeconds.Equals(0f)) + DestroyEntity(entity); + else + _dyingEntities.Add(new DyingEntity {Entity = entity, SecondsUntilDeath = delaySeconds}); + } + + public void DestroyEntity(Entity entity) + { + foreach (var component in _components.Where(c => c.Entity == entity).ToArray()) + DetachComponent(component); + + if (entity.Name != null) + _entitiesByName.Remove(entity.Name); + + _entities.Remove(entity); + EntityDestroyed?.Invoke(this, entity); + } + + public Entity GetEntity(string name) + { + Entity entity; + return _entitiesByName.TryGetValue(name, out entity) ? entity : null; + } + + internal void AttachComponent(EntityComponent component) + { + _components.Add(component); + ComponentAttached?.Invoke(this, component); + } + + internal void DetachComponent(EntityComponent component) + { + _components.Remove(component); + (component as IDisposable)?.Dispose(); + ComponentDetached?.Invoke(this, component); + } + + internal IEnumerable GetComponents() where T : EntityComponent + { + return _components.OfType(); + } + + public void Update(GameTime gameTime) + { + foreach (var componentSystem in _systems) + componentSystem.Update(gameTime); + + for (var i = 0; i < _dyingEntities.Count; i++) + { + _dyingEntities[i].SecondsUntilDeath -= gameTime.GetElapsedSeconds(); + + if (_dyingEntities[i].SecondsUntilDeath <= 0) + { + DestroyEntity(_dyingEntities[i].Entity); + _dyingEntities.Remove(_dyingEntities[i]); + } + } + } + + public void Draw(GameTime gameTime) + { + foreach (var componentSystem in _systems) + componentSystem.Draw(gameTime); + } + + public class DyingEntity + { + public Entity Entity; + public float SecondsUntilDeath; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Entities/MonoGame.Extended.Entities.csproj b/Source/MonoGame.Extended.Entities/MonoGame.Extended.Entities.csproj new file mode 100644 index 00000000..c3bbbcda --- /dev/null +++ b/Source/MonoGame.Extended.Entities/MonoGame.Extended.Entities.csproj @@ -0,0 +1,69 @@ + + + + + 10.0 + Debug + AnyCPU + {35FD1F05-AF04-469A-B37A-F9B36C34401C} + Library + MonoGame.Extended.Entities + MonoGame.Extended.Entities + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile111 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + {587ce536-216f-41a1-b223-ae502c125b09} + MonoGame.Extended.Animations + + + {6c8b9e29-d09b-4901-80fd-45aaa35882c6} + MonoGame.Extended.Particles + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + + + + + + + + + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll + + + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Entities/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Entities/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..381ec233 --- /dev/null +++ b/Source/MonoGame.Extended.Entities/Properties/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System.Resources; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Entities")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Entities")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.Entities/Systems/AnimatedSpriteSystem.cs b/Source/MonoGame.Extended.Entities/Systems/AnimatedSpriteSystem.cs new file mode 100644 index 00000000..d567c357 --- /dev/null +++ b/Source/MonoGame.Extended.Entities/Systems/AnimatedSpriteSystem.cs @@ -0,0 +1,20 @@ +using System.Linq; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Animations; +using MonoGame.Extended.Entities.Components; +using MonoGame.Extended.Sprites; + +namespace MonoGame.Extended.Entities.Systems +{ + public class AnimatedSpriteSystem : ComponentSystem + { + public override void Update(GameTime gameTime) + { + var deltaTime = gameTime.GetElapsedSeconds(); + var sprites = GetComponents>(); + + foreach (var animatedSprite in sprites.Select(c => c.Target).OfType()) + animatedSprite.Update(deltaTime); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Entities/Systems/ComponentSystem.cs b/Source/MonoGame.Extended.Entities/Systems/ComponentSystem.cs new file mode 100644 index 00000000..fb3c83c2 --- /dev/null +++ b/Source/MonoGame.Extended.Entities/Systems/ComponentSystem.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Entities.Components; + +namespace MonoGame.Extended.Entities.Systems +{ + public abstract class ComponentSystem + { + private EntityComponentSystem _parent; + + protected ComponentSystem() + { + } + + internal EntityComponentSystem Parent + { + get { return _parent; } + set + { + if (_parent != null) + throw new InvalidOperationException("ComponentSystem already registered"); + + _parent = value; + + if (_parent != null) + { + _parent.EntityCreated += (sender, entity) => OnEntityCreated(entity); + _parent.EntityDestroyed += (sender, entity) => OnEntityDestroyed(entity); + _parent.ComponentAttached += (sender, component) => OnComponentAttached(component); + _parent.ComponentDetached += (sender, component) => OnComponentDetached(component); + } + } + } + + protected IEnumerable GetComponents() where T : EntityComponent + { + return Parent.GetComponents(); + } + + protected Entity GetEntity(string name) + { + return Parent.GetEntity(name); + } + + protected virtual void OnEntityCreated(Entity entity) + { + } + + protected virtual void OnEntityDestroyed(Entity entity) + { + } + + protected virtual void OnComponentAttached(EntityComponent component) + { + } + + protected virtual void OnComponentDetached(EntityComponent component) + { + } + + public virtual void Update(GameTime gameTime) + { + } + + public virtual void Draw(GameTime gameTime) + { + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Entities/Systems/ParticleEmitterSystem.cs b/Source/MonoGame.Extended.Entities/Systems/ParticleEmitterSystem.cs new file mode 100644 index 00000000..c5b3314c --- /dev/null +++ b/Source/MonoGame.Extended.Entities/Systems/ParticleEmitterSystem.cs @@ -0,0 +1,18 @@ +using Microsoft.Xna.Framework; +using MonoGame.Extended.Entities.Components; +using MonoGame.Extended.Particles; + +namespace MonoGame.Extended.Entities.Systems +{ + public class ParticleEmitterSystem : ComponentSystem + { + public override void Update(GameTime gameTime) + { + var deltaTime = gameTime.GetElapsedSeconds(); + var components = GetComponents>(); + + foreach (var component in components) + component.Target.Update(deltaTime); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Entities/Systems/SpriteBatchSystem.cs b/Source/MonoGame.Extended.Entities/Systems/SpriteBatchSystem.cs new file mode 100644 index 00000000..0ccc8538 --- /dev/null +++ b/Source/MonoGame.Extended.Entities/Systems/SpriteBatchSystem.cs @@ -0,0 +1,50 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Entities.Components; +using MonoGame.Extended.Particles; +using MonoGame.Extended.Sprites; + +namespace MonoGame.Extended.Entities.Systems +{ + public class SpriteBatchSystem : ComponentSystem + { + private readonly Camera2D _camera; + private readonly SpriteBatch _spriteBatch; + + public SpriteBatchSystem(GraphicsDevice graphicsDevice, Camera2D camera) + { + _camera = camera; + _spriteBatch = new SpriteBatch(graphicsDevice); + } + + public Effect Effect { get; set; } + public RasterizerState RasterizerState { get; set; } + public DepthStencilState DepthStencilState { get; set; } + public SamplerState SamplerState { get; set; } + public BlendState BlendState { get; set; } + public SpriteSortMode SortMode { get; set; } = SpriteSortMode.Deferred; + + public override void Draw(GameTime gameTime) + { + var spriteComponents = GetComponents>(); + var particleEmitterComponents = GetComponents>(); + var transformMatrix = _camera.GetViewMatrix(); + + _spriteBatch.Begin(SortMode, BlendState, SamplerState, DepthStencilState, RasterizerState, Effect, transformMatrix); + + foreach (var spriteComponent in spriteComponents) + { + var sprite = spriteComponent.Target; + _spriteBatch.Draw(sprite); + } + + foreach (var particleEmitterComponent in particleEmitterComponents) + { + var particleEmitter = particleEmitterComponent.Target; + _spriteBatch.Draw(particleEmitter); + } + + _spriteBatch.End(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Entities/packages.config b/Source/MonoGame.Extended.Entities/packages.config new file mode 100644 index 00000000..28c01444 --- /dev/null +++ b/Source/MonoGame.Extended.Entities/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics.nuspec b/Source/MonoGame.Extended.Graphics.nuspec new file mode 100644 index 00000000..1536a2a7 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics.nuspec @@ -0,0 +1,35 @@ + + + + + MonoGame.Extended.Graphics + $version$ + + Makes MonoGame more awesome. + Tile based maps, Bitmap Fonts, Sprites and SpriteBatch extensions, + Input Listeners, Texture Atlases, 2D Camera, Viewport Adapters. + + Dylan Wilson + MonoGame.Extended.Graphics + Craftwork Games + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE + https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png + false + + Copyright 2017 - Craftwork Games + monogame extended pipeline bmfont tiled texture atlas input event sprite + + + + + + + + + + + + + + diff --git a/Source/MonoGame.Extended.Graphics/Batcher.cs b/Source/MonoGame.Extended.Graphics/Batcher.cs new file mode 100644 index 00000000..3cb5704a --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Batcher.cs @@ -0,0 +1,387 @@ +using System; +using System.Runtime.CompilerServices; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Graphics +{ + /// + /// Minimizes draw calls to a by sorting them and attempting to merge them together + /// before submitting them. + /// + /// The type of the information for a draw call. + /// + public abstract class Batcher : IDisposable + where TDrawCallInfo : struct, IBatchDrawCallInfo, IComparable + { + internal const int DefaultBatchMaximumDrawCallsCount = 2048; + private BlendState _blendState; + private SamplerState _samplerState; + private DepthStencilState _depthStencilState; + private RasterizerState _rasterizerState; + private readonly Effect _defaultEffect; + private Effect _currentEffect; + private Matrix? _viewMatrix; + private Matrix? _projectionMatrix; + + /// + /// The array of structs currently enqueued. + /// + protected TDrawCallInfo[] DrawCalls; + + /// + /// The number of structs currently enqueued. + /// + protected int EnqueuedDrawCallCount; + + /// + /// Gets the associated with this . + /// + /// + /// The associated with this . + /// + public GraphicsDevice GraphicsDevice { get; } + + /// + /// Gets a value indicating whether batching is currently in progress by being within a and + /// pair block of code. + /// + /// + /// true if batching has begun; otherwise, false. + /// + public bool HasBegun { get; internal set; } + + /// + /// Initializes a new instance of the class. + /// + /// The graphics device. + /// The default effect. + /// + /// The maximum number of structs that can be enqueued before a + /// + /// is required. The default value is 2048. + /// + /// + /// is + /// null. + /// + /// + /// is less than or equal + /// 0. + /// + protected Batcher(GraphicsDevice graphicsDevice, Effect defaultEffect, + int maximumDrawCallsCount = DefaultBatchMaximumDrawCallsCount) + { + if (graphicsDevice == null) + throw new ArgumentNullException(nameof(graphicsDevice)); + + if (maximumDrawCallsCount <= 0) + throw new ArgumentOutOfRangeException(nameof(maximumDrawCallsCount)); + + GraphicsDevice = graphicsDevice; + _defaultEffect = defaultEffect; + DrawCalls = new TDrawCallInfo[maximumDrawCallsCount]; + } + + /// + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// + /// Releases unmanaged and - optionally - managed resources. + /// + /// + /// true to release both managed and unmanaged resources; false to release only + /// unmanaged resources. + /// + protected virtual void Dispose(bool diposing) + { + if (!diposing) + return; + _defaultEffect.Dispose(); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + protected void EnsureHasBegun([CallerMemberName] string callerMemberName = null) + { + if (!HasBegun) + throw new InvalidOperationException( + $"The {nameof(Begin)} method must be called before the {callerMemberName} method can be called."); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + protected void EnsureHasNotBegun([CallerMemberName] string callerMemberName = null) + { + if (HasBegun) + throw new InvalidOperationException( + $"The {nameof(End)} method must be called before the {callerMemberName} method can be called."); + } + + /// + /// Begins the batch operation using an optional , , + /// , , , world-to-view + /// , or view-to-projection . + /// + /// + /// + /// The default objects for , , + /// , and are + /// , , + /// and respectively. + /// Passing + /// null for any of the previously mentioned parameters result in using their default object. + /// + /// + /// The to use for the , pair. + /// + /// The texture to use for the and + /// pair. + /// + /// + /// The to use for the and + /// pair. + /// + /// + /// The to use for the and + /// pair. + /// + /// The to use for the and pair. + /// + /// The world-to-view transformation matrix to use for the and + /// pair. + /// + /// + /// The view-to-projection transformation matrix to use for the and + /// pair. + /// + /// + /// cannot be invoked again until has been invoked. + /// + /// + /// + /// This method must be called before any enqueuing of draw calls. When all the geometry have been enqueued for + /// drawing, call . + /// + /// + public virtual void Begin(Matrix? viewMatrix = null, Matrix? projectionMatrix = null, BlendState blendState = null, SamplerState samplerState = null, + DepthStencilState depthStencilState = null, RasterizerState rasterizerState = null, Effect effect = null) + { + var viewMatrix1 = viewMatrix ?? Matrix.Identity; + var projectionMatrix1 = projectionMatrix ?? Matrix.CreateOrthographicOffCenter(0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, 0, 0, -1); + Begin(ref viewMatrix1, ref projectionMatrix1, blendState, samplerState, depthStencilState, rasterizerState, effect); + } + + /// + /// Begins the batch operation using an optional , , + /// , , , world-to-view + /// , or view-to-projection . + /// + /// + /// + /// The default objects for , , + /// , and are + /// , , + /// and respectively. + /// Passing + /// null for any of the previously mentioned parameters result in using their default object. + /// + /// + /// The to use for the , pair. + /// + /// The texture to use for the and + /// pair. + /// + /// + /// The to use for the and + /// pair. + /// + /// + /// The to use for the and + /// pair. + /// + /// The to use for the and pair. + /// + /// The world-to-view transformation matrix to use for the and + /// pair. + /// + /// + /// The view-to-projection transformation matrix to use for the and + /// pair. + /// + /// + /// cannot be invoked again until has been invoked. + /// + /// + /// + /// This method must be called before any enqueuing of draw calls. When all the geometry have been enqueued for + /// drawing, call . + /// + /// + public virtual void Begin(ref Matrix viewMatrix, ref Matrix projectionMatrix, BlendState blendState = null, SamplerState samplerState = null, + DepthStencilState depthStencilState = null, RasterizerState rasterizerState = null, Effect effect = null) + { + EnsureHasNotBegun(); + HasBegun = true; + + // Store the states to be applied on End() + // This ensures that two or more batchers will not affect each other + _blendState = blendState ?? BlendState.AlphaBlend; + _samplerState = samplerState ?? SamplerState.PointClamp; + _depthStencilState = depthStencilState ?? DepthStencilState.None; + _rasterizerState = rasterizerState ?? RasterizerState.CullCounterClockwise; + _currentEffect = effect ?? _defaultEffect; + _projectionMatrix = projectionMatrix; + _viewMatrix = viewMatrix; + } + + /// + /// Flushes the batched geometry to the and restores it's state to how it was before + /// was called. + /// + /// + /// cannot be invoked until has been invoked. + /// + /// + /// + /// This method must be called after all enqueuing of draw calls. + /// + /// + public void End() + { + EnsureHasBegun(); + Flush(); + HasBegun = false; + } + + /// + /// Sorts then submits the (sorted) enqueued draw calls to the for + /// rendering without ending the and pair. + /// + protected void Flush() + { + if (EnqueuedDrawCallCount == 0) + return; + SortDrawCallsAndBindBuffers(); + ApplyStates(); + SubmitDrawCalls(); + RestoreStates(); + } + + /// + /// Sorts the enqueued draw calls and binds any used or to the . + /// + protected abstract void SortDrawCallsAndBindBuffers(); + + private void ApplyStates() + { + var oldBlendState = GraphicsDevice.BlendState; + var oldSamplerState = GraphicsDevice.SamplerStates[0]; + var oldDepthStencilState = GraphicsDevice.DepthStencilState; + var oldRasterizerState = GraphicsDevice.RasterizerState; + + GraphicsDevice.BlendState = _blendState; + + GraphicsDevice.SamplerStates[0] = _samplerState; + GraphicsDevice.DepthStencilState = _depthStencilState; + GraphicsDevice.RasterizerState = _rasterizerState; + + _blendState = oldBlendState; + _samplerState = oldSamplerState; + _depthStencilState = oldDepthStencilState; + _rasterizerState = oldRasterizerState; + + var viewMatrix = _viewMatrix ?? Matrix.Identity; + var projectionMatrix = _projectionMatrix ?? + Matrix.CreateOrthographicOffCenter(0, GraphicsDevice.Viewport.Width, + GraphicsDevice.Viewport.Height, 0, 0f, -1f); + + var matrixChainEffect = _currentEffect as IMatrixChainEffect; + if (matrixChainEffect != null) + { + matrixChainEffect.World = Matrix.Identity; + matrixChainEffect.SetView(ref viewMatrix); + matrixChainEffect.SetProjection(ref projectionMatrix); + } + else + { + var effectMatrices = _currentEffect as IEffectMatrices; + if (effectMatrices == null) + return; + effectMatrices.World = Matrix.Identity; + effectMatrices.View = viewMatrix; + effectMatrices.Projection = projectionMatrix; + } + } + + private void RestoreStates() + { + GraphicsDevice.BlendState = _blendState; + GraphicsDevice.SamplerStates[0] = _samplerState; + GraphicsDevice.DepthStencilState = _depthStencilState; + GraphicsDevice.RasterizerState = _rasterizerState; + } + + /// + /// Enqueues draw call information. + /// + /// The draw call information. + /// + /// + /// If possible, the is merged with the last enqueued draw call information instead of + /// being + /// enqueued. + /// + /// + /// If the enqueue buffer is full, a is invoked and then afterwards + /// is enqueued. + /// + /// + protected void Enqueue(ref TDrawCallInfo drawCall) + { + if (EnqueuedDrawCallCount > 0 && drawCall.TryMerge(ref DrawCalls[EnqueuedDrawCallCount - 1])) + return; + if (EnqueuedDrawCallCount >= DrawCalls.Length) + Flush(); + DrawCalls[EnqueuedDrawCallCount++] = drawCall; + } + + /* It might be better to have derived classes just implement the for loop instead of having this virtual method call... + * However, if the derived class is only going to override this method once and the code is short, which should both be + * true, then maybe we can get away with this virtual method call by having it inlined. So tell the JIT or AOT compiler + * we would like it be so. This does NOT guarantee the compiler will respect our wishes. + */ + + /// + /// Submits a draw operation to the using the specified . + /// + /// The draw call information. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + protected abstract void InvokeDrawCall(ref TDrawCallInfo drawCall); + + private void SubmitDrawCalls() + { + if (EnqueuedDrawCallCount == 0) + return; + + for (var i = 0; i < EnqueuedDrawCallCount; i++) + { + DrawCalls[i].SetState(_currentEffect); + + foreach (var pass in _currentEffect.CurrentTechnique.Passes) + { + pass.Apply(); + InvokeDrawCall(ref DrawCalls[i]); + } + } + + Array.Clear(DrawCalls, 0, EnqueuedDrawCallCount); + EnqueuedDrawCallCount = 0; + } + } +} + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/Batcher2D.cs b/Source/MonoGame.Extended.Graphics/Batcher2D.cs new file mode 100644 index 00000000..bcb98c23 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Batcher2D.cs @@ -0,0 +1,474 @@ +using System; +using System.Text; +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.BitmapFonts; +using MonoGame.Extended.Graphics.Effects; +using MonoGame.Extended.Graphics.Geometry; + +namespace MonoGame.Extended.Graphics +{ + /// + /// A general purpose for two-dimensional geometry that change + /// frequently between frames such as sprites and shapes. + /// + /// + /// + /// For drawing user interfaces, consider using instead because it supports scissor rectangles. + /// + public sealed class Batcher2D : Batcher + { + + internal const int DefaultMaximumVerticesCount = 8192; + internal const int DefaultMaximumIndicesCount = 12288; + + private readonly VertexBuffer _vertexBuffer; + private readonly IndexBuffer _indexBuffer; + private readonly VertexPositionColorTexture[] _vertices; + private int _vertexCount; + private readonly ushort[] _indices; + private int _indexCount; + private readonly ushort[] _sortedIndices; + private readonly GeometryBuilder2D _geometryBuilder; + + /// + /// Initializes a new instance of the class. + /// + /// The graphics device. + /// + /// The maximum number of vertices that can be enqueued before a + /// is required. The default value is 8192. + /// + /// + /// The maximum number of indices that can be enqueued before a + /// is required. The default value is 12288. + /// + /// + /// The maximum number of structs that can be enqueued before a + /// is required. The default value is 2048. + /// + /// . + /// + /// is less than or equal + /// 0, or is less than or equal to 0, or, + /// is less than or equal to 0. + /// + public Batcher2D(GraphicsDevice graphicsDevice, + ushort maximumVerticesCount = DefaultMaximumVerticesCount, + ushort maximumIndicesCount = DefaultMaximumIndicesCount, + int maximumDrawCallsCount = DefaultBatchMaximumDrawCallsCount) + : base( + graphicsDevice, + new DefaultEffect(graphicsDevice) + { + TextureEnabled = true, + VertexColorEnabled = true + }, maximumDrawCallsCount) + + { + _vertices = new VertexPositionColorTexture[maximumVerticesCount]; + _vertexBuffer = new DynamicVertexBuffer(graphicsDevice, VertexPositionColorTexture.VertexDeclaration, maximumVerticesCount, BufferUsage.WriteOnly); + + _indices = new ushort[maximumIndicesCount]; + _sortedIndices = new ushort[maximumIndicesCount]; + _indexBuffer = new DynamicIndexBuffer(graphicsDevice, IndexElementSize.SixteenBits, maximumIndicesCount, BufferUsage.WriteOnly); + _geometryBuilder = new GeometryBuilder2D(4, 6); + } + + protected override void SortDrawCallsAndBindBuffers() + { + // Upload the vertices to the GPU and then select that vertex stream for drawing + _vertexBuffer.SetData(_vertices, 0, _vertexCount); + GraphicsDevice.SetVertexBuffer(_vertexBuffer); + + Array.Sort(DrawCalls, 0, EnqueuedDrawCallCount); + BuildSortedIndices(); + + // Upload the indices to the GPU and then select that index stream for drawing + _indexBuffer.SetData(_sortedIndices, 0, _indexCount); + GraphicsDevice.Indices = _indexBuffer; + + _indexCount = 0; + _vertexCount = 0; + } + + private void BuildSortedIndices() + { + var newDrawCallsCount = 0; + DrawCalls[0].StartIndex = 0; + var currentDrawCall = DrawCalls[0]; + DrawCalls[newDrawCallsCount++] = DrawCalls[0]; + + var drawCallIndexCount = currentDrawCall.PrimitiveCount * 3; + Array.Copy(_indices, currentDrawCall.StartIndex, _sortedIndices, 0, drawCallIndexCount); + var sortedIndexCount = drawCallIndexCount; + + // iterate through sorted draw calls checking if any can now be merged to reduce expensive draw calls to the graphics API + // this might need to be changed for next-gen graphics API (Vulkan, Metal, DirectX 12) where the draw calls are not so expensive + for (var i = 1; i < EnqueuedDrawCallCount; i++) + { + currentDrawCall = DrawCalls[i]; + drawCallIndexCount = currentDrawCall.PrimitiveCount * 3; + Array.Copy(_indices, currentDrawCall.StartIndex, _sortedIndices, sortedIndexCount, drawCallIndexCount); + sortedIndexCount += drawCallIndexCount; + + if (currentDrawCall.TryMerge(ref DrawCalls[newDrawCallsCount - 1])) + continue; + + currentDrawCall.StartIndex = sortedIndexCount; + DrawCalls[newDrawCallsCount++] = currentDrawCall; + } + + EnqueuedDrawCallCount = newDrawCallsCount; + } + + /// + /// Submits a draw operation to the using the specified . + /// + /// The draw call information. + protected override void InvokeDrawCall(ref DrawCallInfo drawCall) + { + GraphicsDevice.DrawIndexedPrimitives(drawCall.PrimitiveType, 0, drawCall.StartIndex, drawCall.PrimitiveCount); + } + + /// + /// Draws a sprite using a specified , transform , source + /// , and an optional + /// , origin , , and depth . + /// + /// The . + /// The transform . + /// + /// The texture region of the . Use + /// null to use the entire . + /// + /// The . Use null to use the default . + /// The . The default value is . + /// The depth . The default value is 0. + /// The method has not been called. + /// is null. + public void DrawSprite(Texture2D texture, ref Matrix2D transformMatrix, ref Rectangle sourceRectangle, + Color? color = null, FlipFlags flags = FlipFlags.None, float depth = 0) + { + _geometryBuilder.BuildSprite(_vertexCount, ref transformMatrix, texture, ref sourceRectangle, color, flags, depth); + EnqueueBuiltGeometry(texture, depth); + } + + /// + /// Draws a using the specified transform and an optional + /// , origin , , and depth . + /// + /// The . + /// The transform . + /// The . Use null to use the default . + /// The . The default value is . + /// The depth . The default value is 0. + /// The method has not been called. + /// is null. + public void DrawTexture(Texture2D texture, ref Matrix2D transformMatrix, Color? color = null, + FlipFlags flags = FlipFlags.None, float depth = 0) + { + var rectangle = default(Rectangle); + _geometryBuilder.BuildSprite(_vertexCount, ref transformMatrix, texture, ref rectangle, color, flags, depth); + EnqueueBuiltGeometry(texture, depth); + } + + private void EnqueueBuiltGeometry(Texture2D texture, float depth) + { + if ((_vertexCount + _geometryBuilder.VertexCount > _vertices.Length) || + (_indexCount + _geometryBuilder.IndexCount > _indices.Length)) + Flush(); + var drawCall = new DrawCallInfo(texture, _geometryBuilder.PrimitiveType, _indexCount, + _geometryBuilder.PrimitivesCount, depth); + Array.Copy(_geometryBuilder.Vertices, 0, _vertices, _vertexCount, _geometryBuilder.VertexCount); + _vertexCount += _geometryBuilder.VertexCount; + Array.Copy(_geometryBuilder.Indices, 0, _indices, _indexCount, _geometryBuilder.IndexCount); + _indexCount += _geometryBuilder.IndexCount; + Enqueue(ref drawCall); + } + + /// + /// Draws unicode (UTF-16) characters as sprites using the specified , text + /// , transform and optional , origin + /// , , and depth . + /// + /// The . + /// The text . + /// The transform . + /// + /// The . Use null to use the default + /// . + /// + /// The . The default value is . + /// The depth . The default value is 0f. + /// The method has not been called. + /// is null or is null. + public void DrawString(BitmapFont bitmapFont, StringBuilder text, ref Matrix2D transformMatrix, + Color? color = null, FlipFlags flags = FlipFlags.None, float depth = 0f) + { + EnsureHasBegun(); + + if (bitmapFont == null) + throw new ArgumentNullException(nameof(bitmapFont)); + + if (text == null) + throw new ArgumentNullException(nameof(text)); + + var lineSpacing = bitmapFont.LineHeight; + var offset = new Vector2(0, 0); + + for (var i = 0; i < text.Length;) + { + int character; + if (char.IsLowSurrogate(text[i])) + { + character = char.ConvertToUtf32(text[i - 1], text[i]); + i += 2; + } + else if (char.IsHighSurrogate(text[i])) + { + character = char.ConvertToUtf32(text[i], text[i - 1]); + i += 2; + } + else + { + character = text[i]; + i += 1; + } + + // ReSharper disable once SwitchStatementMissingSomeCases + switch (character) + { + case '\r': + continue; + case '\n': + offset.X = 0; + offset.Y += lineSpacing; + continue; + } + + var fontRegion = bitmapFont.GetCharacterRegion(character); + if (fontRegion == null) + continue; + + var transform1Matrix = transformMatrix; + transform1Matrix.M31 += offset.X + fontRegion.XOffset; + transform1Matrix.M32 += offset.Y + fontRegion.YOffset; + + var textureRegion = fontRegion.TextureRegion; + var bounds = textureRegion.Bounds; + DrawSprite(textureRegion.Texture, ref transform1Matrix, ref bounds, color, flags, depth); + + offset.X += i != text.Length - 1 + ? fontRegion.XAdvance + bitmapFont.LetterSpacing + : fontRegion.XOffset + fontRegion.Width; + } + } + + /// + /// Draws unicode (UTF-16) characters as sprites using the specified , text + /// , position and optional , rotation + /// , origin , scale , and + /// depth . + /// + /// The . + /// The text . + /// The position . + /// + /// The . Use null to use the default + /// . + /// + /// + /// The angle (in radians) to rotate each sprite about its . The default + /// value is 0f. + /// + /// + /// The origin . Use null to use the default + /// . + /// + /// + /// The scale . Use null to use the default + /// . + /// + /// The . The default value is . + /// The depth . The default value is 0f + /// The method has not been called. + /// is null or is null. + public void DrawString(BitmapFont bitmapFont, StringBuilder text, Vector2 position, Color? color = null, + float rotation = 0f, Vector2? origin = null, Vector2? scale = null, + FlipFlags flags = FlipFlags.None, float depth = 0f) + { + Matrix2D transformMatrix; + Matrix2D.CreateFrom(position, rotation, scale, origin, out transformMatrix); + DrawString(bitmapFont, text, ref transformMatrix, color, flags, depth); + } + + /// + /// Draws unicode (UTF-16) characters as sprites using the specified , text + /// , transform and optional , origin + /// , , and depth . + /// + /// The . + /// The text . + /// The transform . + /// + /// The . Use null to use the default + /// . + /// + /// The . The default value is . + /// The depth . The default value is 0f + /// The method has not been called. + /// is null or is null. + public void DrawString(BitmapFont bitmapFont, string text, ref Matrix2D transformMatrix, Color? color = null, + FlipFlags flags = FlipFlags.None, float depth = 0f) + { + EnsureHasBegun(); + + if (bitmapFont == null) + throw new ArgumentNullException(nameof(bitmapFont)); + + if (text == null) + throw new ArgumentNullException(nameof(text)); + + var lineSpacing = bitmapFont.LineHeight; + var offset = new Vector2(0, 0); + + for (var i = 0; i < text.Length;) + { + int character; + if (char.IsLowSurrogate(text[i])) + { + character = char.ConvertToUtf32(text[i - 1], text[i]); + i += 2; + } + else if (char.IsHighSurrogate(text[i])) + { + character = char.ConvertToUtf32(text[i], text[i - 1]); + i += 2; + } + else + { + character = text[i]; + i += 1; + } + + // ReSharper disable once SwitchStatementMissingSomeCases + switch (character) + { + case '\r': + continue; + case '\n': + offset.X = 0; + offset.Y += lineSpacing; + continue; + } + + var fontRegion = bitmapFont.GetCharacterRegion(character); + if (fontRegion == null) + continue; + + var transform1Matrix = transformMatrix; + transform1Matrix.M31 += offset.X + fontRegion.XOffset; + transform1Matrix.M32 += offset.Y + fontRegion.YOffset; + + var textureRegion = fontRegion.TextureRegion; + var bounds = textureRegion.Bounds; + DrawSprite(textureRegion.Texture, ref transform1Matrix, ref bounds, color, flags, depth); + + offset.X += i != text.Length - 1 + ? fontRegion.XAdvance + bitmapFont.LetterSpacing + : fontRegion.XOffset + fontRegion.Width; + } + } + + /// + /// Draws unicode (UTF-16) characters as sprites using the specified , text + /// , position and optional , rotation + /// , origin , scale , and + /// depth . + /// + /// The . + /// The text . + /// The position . + /// + /// The . Use null to use the default + /// . + /// + /// + /// The angle (in radians) to rotate each sprite about its . The default + /// value is 0f. + /// + /// + /// The origin . Use null to use the default + /// . + /// + /// + /// The scale . Use null to use the default + /// . + /// + /// The . The default value is . + /// The depth . The default value is 0f + /// The method has not been called. + /// is null or is null. + public void DrawString(BitmapFont bitmapFont, string text, Vector2 position, Color? color = null, + float rotation = 0f, Vector2? origin = null, Vector2? scale = null, + FlipFlags flags = FlipFlags.None, float depth = 0f) + { + Matrix2D matrix; + Matrix2D.CreateFrom(position, rotation, scale, origin, out matrix); + DrawString(bitmapFont, text, ref matrix, color, flags, depth); + } + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + [EditorBrowsable(EditorBrowsableState.Never)] + public struct DrawCallInfo : IBatchDrawCallInfo, IComparable + { + internal readonly PrimitiveType PrimitiveType; + internal int StartIndex; + internal int PrimitiveCount; + internal readonly Texture2D Texture; + internal readonly uint TextureKey; + internal readonly uint DepthKey; + + internal unsafe DrawCallInfo(Texture2D texture, PrimitiveType primitiveType, int startIndex, int primitiveCount, float depth) + { + PrimitiveType = primitiveType; + StartIndex = startIndex; + PrimitiveCount = primitiveCount; + Texture = texture; + TextureKey = (uint)RuntimeHelpers.GetHashCode(texture); + DepthKey = *(uint*)&depth; + } + + public void SetState(Effect effect) + { + var textureEffect = effect as ITextureEffect; + if (textureEffect != null) + textureEffect.Texture = Texture; + } + + public bool TryMerge(ref DrawCallInfo drawCall) + { + if (PrimitiveType != drawCall.PrimitiveType || TextureKey != drawCall.TextureKey || + DepthKey != drawCall.DepthKey) + return false; + drawCall.PrimitiveCount += PrimitiveCount; + return true; + } + + [SuppressMessage("ReSharper", "ImpureMethodCallOnReadonlyValueField")] + public int CompareTo(DrawCallInfo other) + { + var result = TextureKey.CompareTo(other.TextureKey);; + if (result != 0) + return result; + result = DepthKey.CompareTo(other.DepthKey); + return result != 0 ? result : ((byte)PrimitiveType).CompareTo((byte)other.PrimitiveType); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/Effects/DefaultEffect.cs b/Source/MonoGame.Extended.Graphics/Effects/DefaultEffect.cs new file mode 100644 index 00000000..78306771 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Effects/DefaultEffect.cs @@ -0,0 +1,203 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Collections; + +namespace MonoGame.Extended.Graphics.Effects +{ + /// + /// An that allows objects, within a 3D context, to be represented on a 2D monitor. + /// + /// + /// + public class DefaultEffect : MatrixChainEffect, ITextureEffect + { + /// + /// The bitmask for use with indicating wether has + /// changed in the last frame. + /// + protected static uint DirtyTextureBitMask = BitVector32.CreateMask(UseDefaultProjectionBitMask); + + /// + /// The bitmask for use with indicating wether the underlying vertex shader and + /// fragment (pixel) shaders have changed to one of the pre-defined shaders in the last frame. + /// + protected static uint DirtyShaderIndexBitMask = BitVector32.CreateMask(DirtyTextureBitMask); + + /// + /// The bitmask for use with indicating wether the material color has changed in + /// the last frame. + /// + public static uint DirtyMaterialColorBitMask = BitVector32.CreateMask(DirtyShaderIndexBitMask); + + private Texture2D _texture; + private EffectParameter _textureParameter; + + private float _alpha = 1; + private Color _diffuseColor = Color.White; + private EffectParameter _diffuseColorParameter; + + private bool _textureEnabled; + private bool _vertexColorEnabled; + + /// + /// Gets or sets the material . + /// + /// + /// The material . + /// + public Texture2D Texture + { + get { return _texture; } + set + { + _texture = value; + Flags[DirtyTextureBitMask] = true; + } + } + + /// + /// Gets or sets the material color alpha. + /// + /// + /// + /// The alpha channel uses the premultiplied (associated) representation. This means that the RGB components of a + /// color represent + /// the color of the object of pixel, adjusted for its opacity by multiplication of . + /// + /// + public float Alpha + { + get { return _alpha; } + + set + { + _alpha = value; + Flags[DirtyMaterialColorBitMask] = true; + } + } + + /// + /// Gets or sets whether texturing is enabled. + /// + public bool TextureEnabled + { + get { return _textureEnabled; } + + set + { + if (_textureEnabled == value) + return; + _textureEnabled = value; + Flags[DirtyShaderIndexBitMask] = true; + } + } + + /// + /// Gets or sets whether vertex color is enabled. + /// + public bool VertexColorEnabled + { + get { return _vertexColorEnabled; } + + set + { + if (_vertexColorEnabled == value) + return; + _vertexColorEnabled = value; + Flags[DirtyShaderIndexBitMask] = true; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// The graphics device. + public DefaultEffect(GraphicsDevice graphicsDevice) + : base(graphicsDevice, EffectResource.DefaultEffect.Bytecode) + { + Initialize(); + } + + /// + /// Initializes a new instance of the class. + /// + /// The graphics device. + /// The byte code of the shader program. + public DefaultEffect(GraphicsDevice graphicsDevice, byte[] byteCode) + : base(graphicsDevice, byteCode) + { + Initialize(); + } + + /// + /// Initializes a new instance of the class. + /// + /// The clone source. + public DefaultEffect(Effect cloneSource) + : base(cloneSource) + { + Initialize(); + } + + private void Initialize() + { + Flags[DirtyMaterialColorBitMask] = true; + _textureParameter = Parameters["Texture"]; + _diffuseColorParameter = Parameters["DiffuseColor"]; + } + + /// + /// Computes derived parameter values immediately before applying the effect. + /// + protected override void OnApply() + { + base.OnApply(); + + if (Flags[DirtyTextureBitMask]) + { + _textureParameter.SetValue(_texture); + Flags[DirtyTextureBitMask] = false; + } + + // ReSharper disable once InvertIf + if (Flags[DirtyMaterialColorBitMask]) + { + UpdateMaterialColor(); + Flags[DirtyMaterialColorBitMask] = false; + } + + // ReSharper disable once InvertIf + if (Flags[DirtyShaderIndexBitMask]) + { + var shaderIndex = 0; + + if (_textureEnabled) + shaderIndex += 1; + + if (_vertexColorEnabled) + shaderIndex += 2; + + Flags[DirtyShaderIndexBitMask] = false; + CurrentTechnique = Techniques[shaderIndex]; + } + } + + /// + /// Updates the material color parameters associated with this . + /// + protected virtual void UpdateMaterialColor() + { + var diffuseColorVector3 = _diffuseColor.ToVector3(); + + var diffuseColorVector4 = new Vector4() + { + X = diffuseColorVector3.X * Alpha, + Y = diffuseColorVector3.Y * Alpha, + Z = diffuseColorVector3.Z * Alpha, + W = Alpha, + }; + + _diffuseColorParameter.SetValue(diffuseColorVector4); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/Effects/EffectResource.cs b/Source/MonoGame.Extended.Graphics/Effects/EffectResource.cs new file mode 100644 index 00000000..b9c4932b --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Effects/EffectResource.cs @@ -0,0 +1,78 @@ +using System.IO; +using System.Reflection; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Graphics.Effects +{ + /// + /// Reperesents the bytecode of an that is encapsulated inside a compiled assembly. + /// + /// + /// + /// Files that are encapsulated inside a compiled assembly are commonly known as Manifiest or embedded resources. + /// Since embedded resources are added to the assembly at compiled time, they can not be accidentally deleted or + /// misplaced. However, if the file needs to be changed, the assembly will need to be re-compiled with the changed + /// file. + /// + /// + /// To add an embedded resource file to an assembly, first add it to the project and then change the Build Action + /// in the Properties of the file to Embedded Resource. The next time the project is compiled, the + /// compiler will add the file to the assembly as an embedded resource. The compiler adds namespace(s) to the + /// embedded resource so it matches with the path of where the file was added to the project. + /// + /// + public class EffectResource + { + private static EffectResource _defaultEffect; + + /// + /// Gets the embedded into the MonoGame.Extended.Graphics library. + /// + public static EffectResource DefaultEffect => _defaultEffect ?? (_defaultEffect = new EffectResource("MonoGame.Extended.Graphics.Effects.Resources.DefaultEffect.ogl.mgfxo")); + + private readonly string _resourceName; + private volatile byte[] _bytecode; + private readonly Assembly _assembly; + + /// + /// Gets the bytecode of the file. + /// + /// + /// The bytecode of the file. + /// + public byte[] Bytecode + { + get + { + if (_bytecode != null) + return _bytecode; + + lock (this) + { + if (_bytecode != null) + return _bytecode; + + var stream = _assembly.GetManifestResourceStream(_resourceName); + using (var memoryStream = new MemoryStream()) + { + stream.CopyTo(memoryStream); + _bytecode = memoryStream.ToArray(); + } + } + + return _bytecode; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// The name of the embedded resource. This must include the namespace(s). + /// The assembly which the embedded resource is apart of. + public EffectResource(string resourceName, Assembly assembly = null) + { + _resourceName = resourceName; + _assembly = assembly ?? typeof(EffectResource).GetTypeInfo().Assembly; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/Effects/ITextureEffect.cs b/Source/MonoGame.Extended.Graphics/Effects/ITextureEffect.cs new file mode 100644 index 00000000..ea2ef0b0 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Effects/ITextureEffect.cs @@ -0,0 +1,18 @@ +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Graphics.Effects +{ + /// + /// Defines an that uses a . + /// + public interface ITextureEffect + { + /// + /// Gets or sets the . + /// + /// + /// The . + /// + Texture2D Texture { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/Effects/MatrixChainEffect.cs b/Source/MonoGame.Extended.Graphics/Effects/MatrixChainEffect.cs new file mode 100644 index 00000000..474c32a9 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Effects/MatrixChainEffect.cs @@ -0,0 +1,155 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Collections; + +namespace MonoGame.Extended.Graphics.Effects +{ + /// + /// An that uses the standard chain of matrix transformations to represent a 3D object on a 2D + /// monitor. + /// + /// + /// + public abstract class MatrixChainEffect : Effect, IMatrixChainEffect + { + /// + /// The bitmask for use with indicating wether , , or has changed in the last frame. + /// + protected static uint DirtyWorldViewProjectionBitMask = BitVector32.CreateMask(); + + /// + /// The bitmask for use with indicating wether to use a default projection matrix or a custom projection matrix. + /// + protected static uint UseDefaultProjectionBitMask = BitVector32.CreateMask(DirtyWorldViewProjectionBitMask); + + /// + /// The dirty flags associated with this . + /// + protected BitVector32 Flags; + + private Matrix _projection = Matrix.Identity; + private Matrix _view = Matrix.Identity; + private Matrix _world = Matrix.Identity; + private EffectParameter _matrixParameter; + + /// + /// Gets or sets the model-to-world . + /// + /// + /// The model-to-world . + /// + public Matrix World + { + get { return _world; } + set { SetWorld(ref value); } + } + + /// + /// Gets or sets the world-to-view . + /// + /// + /// The world-to-view . + /// + public Matrix View + { + get { return _view; } + set { SetView(ref value); } + } + + /// + /// Gets or sets the view-to-projection . + /// + /// + /// The view-to-projection . + /// + public Matrix Projection + { + get { return _projection; } + set { SetProjection(ref value); } + } + + /// + /// Initializes a new instance of the class. + /// + /// The graphics device. + /// The effect code. + protected MatrixChainEffect(GraphicsDevice graphicsDevice, byte[] byteCode) + : base(graphicsDevice, byteCode) + { + Initialize(); + } + + /// + /// Initializes a new instance of the class. + /// + /// The clone source. + protected MatrixChainEffect(Effect cloneSource) + : base(cloneSource) + { + Initialize(); + } + + private void Initialize() + { + Flags[UseDefaultProjectionBitMask] = true; + + _matrixParameter = Parameters["WorldViewProjection"]; + } + + /// + /// Sets the model-to-world . + /// + /// The model-to-world . + public void SetWorld(ref Matrix world) + { + _world = world; + Flags[DirtyWorldViewProjectionBitMask] = true; + } + + /// + /// Sets the world-to-view . + /// + /// The world-to-view . + public void SetView(ref Matrix view) + { + _view = view; + Flags[DirtyWorldViewProjectionBitMask] = true; + } + + /// + /// Sets the view-to-projection . + /// + /// The view-to-projection . + public void SetProjection(ref Matrix projection) + { + _projection = projection; + Flags[DirtyWorldViewProjectionBitMask] = true; + Flags[UseDefaultProjectionBitMask] = false; + } + + /// + /// Computes derived parameter values immediately before applying the effect. + /// + protected override void OnApply() + { + base.OnApply(); + + // ReSharper disable once InvertIf + if (Flags[DirtyWorldViewProjectionBitMask] || Flags[UseDefaultProjectionBitMask]) + { + if (Flags[UseDefaultProjectionBitMask]) + { + var viewport = GraphicsDevice.Viewport; + _projection = Matrix.CreateOrthographicOffCenter(0, viewport.Width, viewport.Height, 0, 0, -1); + } + + Matrix worldViewProjection; + Matrix.Multiply(ref _world, ref _view, out worldViewProjection); + Matrix.Multiply(ref worldViewProjection, ref _projection, out worldViewProjection); + _matrixParameter.SetValue(worldViewProjection); + + Flags[DirtyWorldViewProjectionBitMask] = false; + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/Effects/Resources/DefaultEffect.dx11.mgfxo b/Source/MonoGame.Extended.Graphics/Effects/Resources/DefaultEffect.dx11.mgfxo new file mode 100644 index 0000000000000000000000000000000000000000..fc119288425cc605f2a1a4535a1c92a4add3af74 GIT binary patch literal 4721 zcmdT|Uuc_E6hB|Sw9T+JQL8Hm8pdQ}Y%<4~n@){wmR6W+X}emb*sd;{mAcHfn{^EN z)S?qcjpBpi)I3ZlmW>X5DEiWeDu@r;a6(^nMZyq=4+aMV(fa${?>lJ{zO)*~oR^*4 zKj++g&%Nh&f8SXjZBBHDtmp?Xy%~^*Sb`E03w21=;y2#i*!1<6=Z^pJ)xlSG%?_{W zzckiCBkF>v*Fz3NW*}D}52yBRiKC`SV1B+H6>Th8>9yE%+W|9<9~RhR$$*5yjz~5$ zKQGeJ5^s+|MTtNj$CiolD2%wCNK(YkMX3?lBvP$ywc+@KFny$>dB<9`IVS{(LRi?h zO-m$sFL@zQ=v3|{_e`8PjaXnbz^ zzC)j_Fq=ac!~(p6IYbAR)UPO`*ZGZQ^l;M5f4PjFfm;j^ z+&>>&AmX0@f=>Ab6oY=zk6& zARP25d>PwOxqw*hwKn3yR(fp{o%{vTo`8VTfoqdqJB^o>X*9l?7d9!OYzCl#@1_si zYzABF3v@Kl$FNWgvI?Ss=HjrGCpf>)4Pti#j=Xn~V-JpP z6IqrM4*;HB;zhTwYioAERhdp8`|_K1i>6rxJO}N;@&tbjvGB1g#qi_ z*4@uvbMu&3|(=upqPBX;iOpTFMrKn`zEgt{Q=^^hx&EC#n? zjA5TfpTc*26jh}>z_3?|^yfb;o$KD+X|CX zt{`kS;4O3Bf6W{Cz*MO(2@kHyC4TUO%M0)WmsA2jzjb*ROTxOgJgf~T9mXmI=jr>$ zqr1m8T}n5f84VtMwSkLMr{H`C{of%i7$Z3Q(58@M2wqC*M~b6Bg9#ccV@oii<$!A@ z3pi)89OrbxI0m^DqTtar$twg8eJ$jbBCf!Pg?hhCfLzM8{w-I8OFjrqt=n7MK@^qn z1f8>v!V3oBt+UVe&7AnYE>wN?m(h#XDmqS`20Uu(9S2TsmW(Pn$>uKDPl3zjYkb*VW~Wz2GM4q$zuFWu#^VB z#~n7mw56Va>Mt3mk2VYnGa(lg3;9qbEXVx-2vk-C%aiL)y*|}d_wI?;`ev7J-T&l= z%y)%4g;fLttKrWv2)S++dJ40l)pS?t=ypA`Alw(Q#Yz@9w^hLcUH!PF3*3PUf>LxmEsZ+R>=G`PEK zAo+aTQ0kfFQ|50J5;V57ue{hbHJ!=Pkpn}33rjGR{~HJn&+|)IN7N9bHcwcm3fFfG QSJ9*TqTzx`HPz7m4FR)u3;+NC literal 0 HcmV?d00001 diff --git a/Source/MonoGame.Extended.Graphics/Effects/Resources/DefaultEffect.fx b/Source/MonoGame.Extended.Graphics/Effects/Resources/DefaultEffect.fx new file mode 100644 index 00000000..f8e1e18e --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Effects/Resources/DefaultEffect.fx @@ -0,0 +1,71 @@ +#include "Macros.fxh" +#include "Structures.fxh" + +DECLARE_TEXTURE(Texture, 0); + +BEGIN_CONSTANTS +MATRIX_CONSTANTS + +float4x4 WorldViewProjection _vs(c0) _cb(c0); + +END_CONSTANTS + +float4 DiffuseColor = float4(1, 1, 1, 1); + +VertexShaderOutputPosition VertexShaderFunctionPosition(VertexShaderInputPosition input) +{ + VertexShaderOutputPosition output; + output.Position = mul(input.Position, WorldViewProjection); + return output; +} + +float4 PixelShaderFunctionPosition(VertexShaderOutputPosition input) : SV_Target0 +{ + return DiffuseColor; +} + +VertexShaderOutputPositionTexture VertexShaderFunctionPositionTexture(VertexShaderInputPositionTexture input) +{ + VertexShaderOutputPositionTexture output; + output.Position = mul(input.Position, WorldViewProjection); + output.TextureCoordinate = input.TextureCoordinate; + return output; +} + +float4 PixelShaderFunctionPositionTexture(VertexShaderOutputPositionTexture input) : SV_Target0 +{ + return SAMPLE_TEXTURE(Texture, input.TextureCoordinate) * DiffuseColor; +} + +VertexShaderOutputPosition VertexShaderFunctionPositionColor(VertexShaderInputPositionColor input) +{ + VertexShaderOutputPositionColor output; + output.Position = mul(input.Position, WorldViewProjection); + output.Color = input.Color; + return output; +} + +float4 PixelShaderFunctionPositionColor(VertexShaderOutputPositionColor input) : SV_Target0 +{ + return input.Color * DiffuseColor; +} + +VertexShaderOutputPositionColorTexture VertexShaderFunctionPositionColorTexture(VertexShaderInputPositionColorTexture input) +{ + VertexShaderOutputPositionColorTexture output; + output.Position = mul(input.Position, WorldViewProjection); + output.Color = input.Color; + output.TextureCoordinate = input.TextureCoordinate; + return output; +} + +float4 PixelShaderFunctionPositionColorTexture(VertexShaderOutputPositionColorTexture input) : SV_Target0 +{ + float4 textureColor = SAMPLE_TEXTURE(Texture, input.TextureCoordinate); + return textureColor * input.Color * DiffuseColor; +} + +TECHNIQUE(Position, VertexShaderFunctionPosition, PixelShaderFunctionPosition); +TECHNIQUE(PositionTexture, VertexShaderFunctionPositionTexture, PixelShaderFunctionPositionTexture); +TECHNIQUE(PositionColor, VertexShaderFunctionPositionColor, PixelShaderFunctionPositionColor); +TECHNIQUE(PositionColorTexture, VertexShaderFunctionPositionColorTexture, PixelShaderFunctionPositionColorTexture); \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/Effects/Resources/DefaultEffect.ogl.mgfxo b/Source/MonoGame.Extended.Graphics/Effects/Resources/DefaultEffect.ogl.mgfxo new file mode 100644 index 0000000000000000000000000000000000000000..4daf3ed5f0051b999a783dfd7b6e7b259131273c GIT binary patch literal 4718 zcmeHK-D=w~6jtJNX~V(_+XEPS({^33-QJWj7$i$?HYluYgHl2k%c(|U8QIR?*h}n% z_7p4hZFY_vH-3*~Ep->`u<@3k1Vb%%^DWS$T|gp+R`lGW&y0TXg$PKHvfu8FA*C!!Gl8 z_v*Fp_1YFpg}67#oUq0ZgkjvJxO{tfm#lwz@8GiMd47b!>GAWh%_ec61Pxvgbk0`| z8Xz9ML38Fxkk`x5!Ud4R0}W_f_40mga2p#&&GtijghE(fhYQBVe zN$s<-xvzPT$5{{Dr8>h5Je-DQzS2g~ZC-t)(uO<}XfQ$oD8~QVW@!fsHMf81xwLY_ z?l2fo;k2-sLUbN=#gzH|d9|F;Nt1KoW~Pmxs&7p9>R^El9MMS>3+l9XooG;dpEacbn*Q%4n zU1dsPm4Ot<(uhtzHws26O>lZBaU*p(ikpiVn-E-bGi5?fwh=yf--R6vLh6zU3VD4h_KNEfQgSqoKVWK|V5m>hFZUl}Fi zX^VMY98#%T;GR)I*`@!=#`Diy4BStQj!y;uMtgX#CZtk;)jgNL8PzKA7G9eYY-JOQ lSKiyDh{3^U=|~EM7!2HfJvAhIhv5y}(F<)@ajHH6>mOJby66A^ literal 0 HcmV?d00001 diff --git a/Source/MonoGame.Extended.Graphics/Effects/Resources/Macros.fxh b/Source/MonoGame.Extended.Graphics/Effects/Resources/Macros.fxh new file mode 100644 index 00000000..ca690ff7 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Effects/Resources/Macros.fxh @@ -0,0 +1,53 @@ +#ifdef SM4 + +// Macros for targetting shader model 4.0 (DX11) + +#define TECHNIQUE(name, vsname, psname ) \ + technique name { pass { VertexShader = compile vs_4_0_level_9_1 vsname (); PixelShader = compile ps_4_0_level_9_1 psname(); } } + +#define BEGIN_CONSTANTS cbuffer Parameters : register(b0) { +#define MATRIX_CONSTANTS }; cbuffer ProjectionMatrix : register(b1) { +#define END_CONSTANTS }; + +#define _vs(r) +#define _ps(r) +#define _cb(r) : packoffset(r) + +#define DECLARE_TEXTURE(Name, index) \ + Texture2D Name : register(t##index); \ + sampler Name##Sampler : register(s##index) + +#define DECLARE_CUBEMAP(Name, index) \ + TextureCube Name : register(t##index); \ + sampler Name##Sampler : register(s##index) + +#define SAMPLE_TEXTURE(Name, texCoord) Name.Sample(Name##Sampler, texCoord) +#define SAMPLE_CUBEMAP(Name, texCoord) Name.Sample(Name##Sampler, texCoord) + +#else + +// Macros for targetting shader model 2.0 (DX9) + +#define TECHNIQUE(name, vsname, psname ) \ + technique name { pass { VertexShader = compile vs_2_0 vsname (); PixelShader = compile ps_2_0 psname(); } } + +#define BEGIN_CONSTANTS +#define MATRIX_CONSTANTS +#define END_CONSTANTS + +#define _vs(r) : register(vs, r) +#define _ps(r) : register(ps, r) +#define _cb(r) + +#define DECLARE_TEXTURE(Name, index) \ + texture2D Name; \ + sampler Name##Sampler : register(s##index) = sampler_state { Texture = (Name); }; + +#define DECLARE_CUBEMAP(Name, index) \ + textureCUBE Name; \ + sampler Name##Sampler : register(s##index) = sampler_state { Texture = (Name); }; + +#define SAMPLE_TEXTURE(Name, texCoord) tex2D(Name##Sampler, texCoord) +#define SAMPLE_CUBEMAP(Name, texCoord) texCUBE(Name##Sampler, texCoord) + +#endif diff --git a/Source/MonoGame.Extended.Graphics/Effects/Resources/RebuildEffects.bat b/Source/MonoGame.Extended.Graphics/Effects/Resources/RebuildEffects.bat new file mode 100644 index 00000000..5cf1a90b --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Effects/Resources/RebuildEffects.bat @@ -0,0 +1,15 @@ +setlocal + +SET TWOMGFX="C:\Program Files (x86)\MSBuild\MonoGame\v3.0\Tools\2mgfx.exe" + +@for /f %%f IN ('dir /b *.fx') do ( + + call %TWOMGFX% %%~nf.fx %%~nf.ogl.mgfxo /Profile:OpenGL + + call %TWOMGFX% %%~nf.fx %%~nf.dx11.mgfxo /Profile:DirectX_11 + +) + +endlocal + +pause \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/Effects/Resources/Structures.fxh b/Source/MonoGame.Extended.Graphics/Effects/Resources/Structures.fxh new file mode 100644 index 00000000..d3af6a0f --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Effects/Resources/Structures.fxh @@ -0,0 +1,51 @@ +// Vertex shader input structures. + +struct VertexShaderInputPosition +{ + float4 Position : SV_Position; +}; + +struct VertexShaderInputPositionColor +{ + float4 Position : SV_Position; + float4 Color : COLOR; +}; + +struct VertexShaderInputPositionTexture +{ + float4 Position : SV_Position; + float2 TextureCoordinate : TEXCOORD0; +}; + +struct VertexShaderInputPositionColorTexture +{ + float4 Position : SV_Position; + float4 Color : COLOR; + float2 TextureCoordinate : TEXCOORD0; +}; + +// Vertex shader output structures. + +struct VertexShaderOutputPosition +{ + float4 Position : SV_Position; +}; + +struct VertexShaderOutputPositionColor +{ + float4 Position : SV_Position; + float4 Color : COLOR0; +}; + +struct VertexShaderOutputPositionTexture +{ + float4 Position : SV_Position; + float2 TextureCoordinate : TEXCOORD0; +}; + +struct VertexShaderOutputPositionColorTexture +{ + float4 Position : SV_Position; + float4 Color : COLOR0; + float2 TextureCoordinate : TEXCOORD0; +}; diff --git a/Source/MonoGame.Extended.Graphics/FlipFlags.cs b/Source/MonoGame.Extended.Graphics/FlipFlags.cs new file mode 100644 index 00000000..6c198874 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/FlipFlags.cs @@ -0,0 +1,13 @@ +using System; + +namespace MonoGame.Extended.Graphics +{ + [Flags] + public enum FlipFlags : byte + { + None = 0, + FlipDiagonally = 1 << 0, + FlipVertically = 1 << 1, + FlipHorizontally = 1 << 2 + } +} diff --git a/Source/MonoGame.Extended.Graphics/Geometry/GeometryBuilder.cs b/Source/MonoGame.Extended.Graphics/Geometry/GeometryBuilder.cs new file mode 100644 index 00000000..dad4f155 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Geometry/GeometryBuilder.cs @@ -0,0 +1,24 @@ +using System; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Graphics.Geometry +{ + public abstract class GeometryBuilder + where TVertexType : struct, IVertexType + where TIndexType : struct + { + public PrimitiveType PrimitiveType { get; protected set; } + public int VertexCount { get; protected set; } + public int IndexCount { get; protected set; } + public int PrimitivesCount { get; protected set; } + + public TVertexType[] Vertices { get; } + public TIndexType[] Indices { get; } + + protected GeometryBuilder(int maximumVerticesCount, int maximumIndicesCount) + { + Vertices = new TVertexType[maximumVerticesCount]; + Indices = new TIndexType[maximumIndicesCount]; + } + } +} diff --git a/Source/MonoGame.Extended.Graphics/Geometry/GeometryBuilder2D.cs b/Source/MonoGame.Extended.Graphics/Geometry/GeometryBuilder2D.cs new file mode 100644 index 00000000..e4f13ff8 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Geometry/GeometryBuilder2D.cs @@ -0,0 +1,119 @@ +using System; +using System.Runtime.CompilerServices; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Graphics.Geometry +{ + public class GeometryBuilder2D : GeometryBuilder + { + public GeometryBuilder2D(int maximumVerticesCount, int maximumIndicesCount) + : base(maximumVerticesCount, maximumIndicesCount) + { + } + + public void BuildSprite(int indexOffset, ref Matrix2D transformMatrix, Texture2D texture, + ref Rectangle sourceRectangle, + Color? color = null, FlipFlags flags = FlipFlags.None, float depth = 0) + { + if (texture == null) + throw new ArgumentNullException(nameof(texture)); + + var texelLeft = 0f; + var texelTop = 0f; + var texelRight = 1f; + var texelBottom = 1f; + + if (sourceRectangle.Width > 0) + { + texelLeft = (sourceRectangle.X + 0.5f) / texture.Width; + texelTop = (sourceRectangle.Y + 0.5f) / texture.Height; + texelRight = (sourceRectangle.X + sourceRectangle.Width) / (float)texture.Width; + texelBottom = (sourceRectangle.Y + sourceRectangle.Height) / (float)texture.Height; + } + else + { + sourceRectangle.Width = texture.Width; + sourceRectangle.Height = texture.Height; + } + + var color1 = color ?? Color.White; + + var vertices = Vertices; + + transformMatrix.Transform(0, 0, ref vertices[0].Position); + vertices[0].Position.Z = depth; + vertices[0].Color = color1; + vertices[0].TextureCoordinate.X = texelLeft; + vertices[0].TextureCoordinate.Y = texelTop; + + transformMatrix.Transform(sourceRectangle.Width, 0, ref vertices[1].Position); + vertices[1].Position.Z = depth; + vertices[1].Color = color1; + vertices[1].TextureCoordinate.X = texelRight; + vertices[1].TextureCoordinate.Y = texelTop; + + transformMatrix.Transform(0, sourceRectangle.Height, ref vertices[2].Position); + vertices[2].Position.Z = depth; + vertices[2].Color = color1; + vertices[2].TextureCoordinate.X = texelLeft; + vertices[2].TextureCoordinate.Y = texelBottom; + + transformMatrix.Transform(sourceRectangle.Width, sourceRectangle.Height, ref vertices[3].Position); + vertices[3].Position.Z = depth; + vertices[3].Color = color1; + vertices[3].TextureCoordinate.X = texelRight; + vertices[3].TextureCoordinate.Y = texelBottom; + + var flipDiagonally = (flags & FlipFlags.FlipDiagonally) != 0; + var flipHorizontally = (flags & FlipFlags.FlipHorizontally) != 0; + var flipVertically = (flags & FlipFlags.FlipVertically) != 0; + + if (flipDiagonally) + { + FloatHelper.Swap(ref vertices[1].TextureCoordinate.X, ref vertices[2].TextureCoordinate.X); + FloatHelper.Swap(ref vertices[1].TextureCoordinate.Y, ref vertices[2].TextureCoordinate.Y); + } + + if (flipHorizontally) + if (flipDiagonally) + { + FloatHelper.Swap(ref vertices[0].TextureCoordinate.Y, ref vertices[1].TextureCoordinate.Y); + FloatHelper.Swap(ref vertices[2].TextureCoordinate.Y, ref vertices[3].TextureCoordinate.Y); + } + else + { + FloatHelper.Swap(ref vertices[0].TextureCoordinate.X, ref vertices[1].TextureCoordinate.X); + FloatHelper.Swap(ref vertices[2].TextureCoordinate.X, ref vertices[3].TextureCoordinate.X); + } + + if (flipVertically) + if (flipDiagonally) + { + FloatHelper.Swap(ref vertices[0].TextureCoordinate.X, ref vertices[2].TextureCoordinate.X); + FloatHelper.Swap(ref vertices[1].TextureCoordinate.X, ref vertices[3].TextureCoordinate.X); + } + else + { + FloatHelper.Swap(ref vertices[0].TextureCoordinate.Y, ref vertices[2].TextureCoordinate.Y); + FloatHelper.Swap(ref vertices[1].TextureCoordinate.Y, ref vertices[3].TextureCoordinate.Y); + } + + VertexCount = 4; + AddQuadrilateralIndices(indexOffset); + IndexCount = 6; + PrimitivesCount = 2; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void AddQuadrilateralIndices(int indexOffset) + { + Indices[0] = (ushort)(0 + indexOffset); + Indices[1] = (ushort)(1 + indexOffset); + Indices[2] = (ushort)(2 + indexOffset); + Indices[3] = (ushort)(1 + indexOffset); + Indices[4] = (ushort)(3 + indexOffset); + Indices[5] = (ushort)(2 + indexOffset); + } + } +} diff --git a/Source/MonoGame.Extended.Graphics/IBatchDrawCallInfo.cs b/Source/MonoGame.Extended.Graphics/IBatchDrawCallInfo.cs new file mode 100644 index 00000000..67c47552 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/IBatchDrawCallInfo.cs @@ -0,0 +1,19 @@ +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Graphics +{ + /// + /// Defines the for a deferred draw call when batching. + /// + public interface IBatchDrawCallInfo where TDrawCallInfo : IBatchDrawCallInfo + { + /// + /// Applies any state from the to the + /// or . + /// + /// The effect. + void SetState(Effect effect); + + bool TryMerge(ref TDrawCallInfo drawCall); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/IMatrixChainEffect.cs b/Source/MonoGame.Extended.Graphics/IMatrixChainEffect.cs new file mode 100644 index 00000000..da8ccb98 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/IMatrixChainEffect.cs @@ -0,0 +1,30 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Graphics +{ + /// + /// Defines an that uses the standard chain of matrix transformations to represent a 3D object on + /// a 2D monitor. + /// + public interface IMatrixChainEffect : IEffectMatrices + { + /// + /// Sets the model-to-world . + /// + /// The model-to-world . + void SetWorld(ref Matrix world); + + /// + /// Sets the world-to-view . + /// + /// The world-to-view . + void SetView(ref Matrix view); + + /// + /// Sets the view-to-projection . + /// + /// The view-to-projection . + void SetProjection(ref Matrix projection); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/MonoGame.Extended.Graphics.csproj b/Source/MonoGame.Extended.Graphics/MonoGame.Extended.Graphics.csproj new file mode 100644 index 00000000..94c448fb --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/MonoGame.Extended.Graphics.csproj @@ -0,0 +1,86 @@ + + + + + 11.0 + Debug + AnyCPU + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC} + Library + Properties + MonoGame.Extended.Graphics + MonoGame.Extended.Graphics + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile111 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + 6 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/PrimitiveTypeExtensions.cs b/Source/MonoGame.Extended.Graphics/PrimitiveTypeExtensions.cs new file mode 100644 index 00000000..68a39efb --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/PrimitiveTypeExtensions.cs @@ -0,0 +1,42 @@ +using System; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Graphics +{ + public static class PrimitiveTypeExtensions + { + internal static int GetPrimitivesCount(this PrimitiveType primitiveType, int verticesCount) + { + switch (primitiveType) + { + case PrimitiveType.LineStrip: + return verticesCount - 1; + case PrimitiveType.LineList: + return verticesCount/2; + case PrimitiveType.TriangleStrip: + return verticesCount - 2; + case PrimitiveType.TriangleList: + return verticesCount/3; + default: + throw new ArgumentException("Invalid primitive type."); + } + } + + internal static int GetVerticesCount(this PrimitiveType primitiveType, int primitivesCount) + { + switch (primitiveType) + { + case PrimitiveType.LineStrip: + return primitivesCount + 1; + case PrimitiveType.LineList: + return primitivesCount*2; + case PrimitiveType.TriangleStrip: + return primitivesCount + 2; + case PrimitiveType.TriangleList: + return primitivesCount*3; + default: + throw new ArgumentException("Invalid primitive type."); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Graphics/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Graphics/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d7b7090e --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/Properties/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System.Resources; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Graphics")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Graphics")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended/RenderTarget2DExtensions.cs b/Source/MonoGame.Extended.Graphics/RenderTarget2DExtensions.cs similarity index 87% rename from Source/MonoGame.Extended/RenderTarget2DExtensions.cs rename to Source/MonoGame.Extended.Graphics/RenderTarget2DExtensions.cs index fe516497..f0906038 100644 --- a/Source/MonoGame.Extended/RenderTarget2DExtensions.cs +++ b/Source/MonoGame.Extended.Graphics/RenderTarget2DExtensions.cs @@ -2,11 +2,12 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace MonoGame.Extended +namespace MonoGame.Extended.Graphics { public static class RenderTarget2DExtensions { - public static IDisposable BeginDraw(this RenderTarget2D renderTarget, GraphicsDevice graphicsDevice, Color backgroundColor) + public static IDisposable BeginDraw(this RenderTarget2D renderTarget, GraphicsDevice graphicsDevice, + Color backgroundColor) { return new RenderTargetOperation(renderTarget, graphicsDevice, backgroundColor); } @@ -14,10 +15,11 @@ namespace MonoGame.Extended private class RenderTargetOperation : IDisposable { private readonly GraphicsDevice _graphicsDevice; - private readonly Viewport _viewport; private readonly RenderTargetUsage _previousRenderTargetUsage; + private readonly Viewport _viewport; - public RenderTargetOperation(RenderTarget2D renderTarget, GraphicsDevice graphicsDevice, Color backgroundColor) + public RenderTargetOperation(RenderTarget2D renderTarget, GraphicsDevice graphicsDevice, + Color backgroundColor) { _graphicsDevice = graphicsDevice; _viewport = _graphicsDevice.Viewport; diff --git a/Source/MonoGame.Extended.Graphics/packages.config b/Source/MonoGame.Extended.Graphics/packages.config new file mode 100644 index 00000000..28c01444 --- /dev/null +++ b/Source/MonoGame.Extended.Graphics/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui.nuspec b/Source/MonoGame.Extended.Gui.nuspec new file mode 100644 index 00000000..fd1011ac --- /dev/null +++ b/Source/MonoGame.Extended.Gui.nuspec @@ -0,0 +1,34 @@ + + + + + MonoGame.Extended.Gui + $version$ + + A GUI system for MonoGame written from the ground up to make MonoGame more awesome. + + Dylan Wilson + MonoGame.Extended.Gui + Craftwork Games + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE + https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png + false + + Copyright 2017 - Craftwork Games + monogame extended gui + + + + + + + + + + + + + + + diff --git a/Source/MonoGame.Extended.Gui/Controls/GuiButton.cs b/Source/MonoGame.Extended.Gui/Controls/GuiButton.cs new file mode 100644 index 00000000..49532413 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Controls/GuiButton.cs @@ -0,0 +1,93 @@ +using System; +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Gui.Controls +{ + public class GuiButton : GuiControl + { + public GuiButton() + { + } + + public GuiButton(TextureRegion2D backgroundRegion) + : base(backgroundRegion) + { + } + + public event EventHandler Clicked; + public event EventHandler PressedStateChanged; + + private bool _isPressed; + public bool IsPressed + { + get { return _isPressed; } + set + { + if (_isPressed != value) + { + _isPressed = value; + PressedStyle?.ApplyIf(this, _isPressed); + PressedStateChanged?.Invoke(this, EventArgs.Empty); + } + } + } + + private GuiControlStyle _pressedStyle; + public GuiControlStyle PressedStyle + { + get { return _pressedStyle; } + set + { + if (_pressedStyle != value) + { + _pressedStyle = value; + PressedStyle?.ApplyIf(this, _isPressed); + } + } + } + + private bool _isPointerDown; + + public override void OnPointerDown(GuiPointerEventArgs args) + { + base.OnPointerDown(args); + + if (IsEnabled) + { + _isPointerDown = true; + IsPressed = true; + } + } + + public override void OnPointerUp(GuiPointerEventArgs args) + { + base.OnPointerUp(args); + + _isPointerDown = false; + + if (IsPressed) + { + IsPressed = false; + + if (BoundingRectangle.Contains(args.Position) && IsEnabled) + Clicked?.Invoke(this, EventArgs.Empty); + } + } + + public override void OnPointerEnter(GuiPointerEventArgs args) + { + base.OnPointerEnter(args); + + if (IsEnabled && _isPointerDown) + IsPressed = true; + } + + public override void OnPointerLeave(GuiPointerEventArgs args) + { + base.OnPointerLeave(args); + + if (IsEnabled) + IsPressed = false; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Controls/GuiCheckBox.cs b/Source/MonoGame.Extended.Gui/Controls/GuiCheckBox.cs new file mode 100644 index 00000000..24641fcf --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Controls/GuiCheckBox.cs @@ -0,0 +1,74 @@ +using System; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Shapes; +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Gui.Controls +{ + public class GuiCheckBox : GuiControl + { + public GuiCheckBox() + { + } + + public GuiCheckBox(TextureRegion2D backgroundRegion) + : base(backgroundRegion) + { + } + + public event EventHandler CheckStateChanged; + + private bool _isChecked; + public bool IsChecked + { + get { return _isChecked; } + set + { + if (_isChecked != value) + { + _isChecked = value; + CheckedStyle?.ApplyIf(this, _isChecked); + CheckStateChanged?.Invoke(this, EventArgs.Empty); + } + } + } + + private GuiControlStyle _checkedStyle; + public GuiControlStyle CheckedStyle + { + get { return _checkedStyle; } + set + { + if (_checkedStyle != value) + { + _checkedStyle = value; + CheckedStyle?.ApplyIf(this, _isChecked); + } + } + } + + public override void OnPointerUp(GuiPointerEventArgs args) + { + base.OnPointerUp(args); + + if (IsFocused && BoundingRectangle.Contains(args.Position)) + IsChecked = !IsChecked; + } + + protected override void DrawBackground(IGuiRenderer renderer, float deltaSeconds) + { + var boundingRectangle = BoundingRectangle; + var checkRectangle = new Rectangle(boundingRectangle.X, boundingRectangle.Y, BackgroundRegion.Width, BackgroundRegion.Height); + + renderer.DrawRegion(BackgroundRegion, checkRectangle, Color); + } + + protected override void DrawText(IGuiRenderer renderer, float deltaSeconds, TextInfo textInfo) + { + textInfo.Position = BoundingRectangle.Location.ToVector2() + + new Vector2(BackgroundRegion.Width + 5, BackgroundRegion.Height * 0.5f - textInfo.Font.LineHeight * 0.5f); + + base.DrawText(renderer, deltaSeconds, textInfo); + } + } +} diff --git a/Source/MonoGame.Extended.Gui/Controls/GuiControl.cs b/Source/MonoGame.Extended.Gui/Controls/GuiControl.cs new file mode 100644 index 00000000..d0472c62 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Controls/GuiControl.cs @@ -0,0 +1,180 @@ +using System.ComponentModel; +using Microsoft.Xna.Framework; +using MonoGame.Extended.BitmapFonts; +using MonoGame.Extended.Input.InputListeners; +using MonoGame.Extended.TextureAtlases; +using Newtonsoft.Json; + +namespace MonoGame.Extended.Gui.Controls +{ + public abstract class GuiControl : IMovable, ISizable + { + protected GuiControl() + { + Color = Color.White; + TextColor = Color.White; + IsEnabled = true; + IsVisible = true; + Controls = new GuiControlCollection(this); + Origin = Vector2.One * 0.5f; + } + + protected GuiControl(TextureRegion2D backgroundRegion) + : this() + { + BackgroundRegion = backgroundRegion; + } + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonIgnore] + public GuiControl Parent { get; internal set; } + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonIgnore] + public Rectangle BoundingRectangle + { + get + { + var position = Parent != null ? Parent.Position - Parent.Size * Parent.Origin + Position : Position; + return new Rectangle((position - Size * Origin).ToPoint(), (Point)Size); + } + } + + [EditorBrowsable(EditorBrowsableState.Never)] + public Thickness Margin { get; set; } + + [EditorBrowsable(EditorBrowsableState.Never)] + public Thickness Padding { get; set; } + + [EditorBrowsable(EditorBrowsableState.Never)] + public bool IsFocused { get; set; } + + public string Name { get; set; } + public Vector2 Position { get; set; } + public Vector2 Origin { get; set; } + + public Size2 Size { get; set; } + public Color Color { get; set; } + + public Rectangle ClippingRectangle + { + get + { + var r = BoundingRectangle; + return new Rectangle(r.Left + Padding.Left, r.Top + Padding.Top, + r.Width - Padding.Right - Padding.Left, r.Height - Padding.Bottom - Padding.Top); + } + } + + private TextureRegion2D _backgroundRegion; + public TextureRegion2D BackgroundRegion + { + get { return _backgroundRegion; } + set + { + if (_backgroundRegion != value) + { + // if this is the first time a texture region has been set and this control has no size, + // use the size of the texture region + if (_backgroundRegion == null && value != null && Size.IsEmpty) + Size = value.Size; + + _backgroundRegion = value; + } + } + } + + public BitmapFont Font { get; set; } + public string Text { get; set; } + public Color TextColor { get; set; } + public Vector2 TextOffset { get; set; } + + public GuiControlCollection Controls { get; } + + private bool _isEnabled; + public bool IsEnabled + { + get { return _isEnabled; } + set + { + _isEnabled = value; + DisabledStyle?.ApplyIf(this, !_isEnabled); + } + } + + public bool IsVisible { get; set; } + public GuiControlStyle HoverStyle { get; set; } + + private GuiControlStyle _disabledStyle; + public GuiControlStyle DisabledStyle + { + get { return _disabledStyle; } + set + { + _disabledStyle = value; + DisabledStyle?.ApplyIf(this, !_isEnabled); + } + } + + public virtual void OnKeyTyped(KeyboardEventArgs args) { } + public virtual void OnKeyPressed(KeyboardEventArgs args) { } + + public virtual void OnPointerDown(GuiPointerEventArgs args) { } + public virtual void OnPointerUp(GuiPointerEventArgs args) { } + + public virtual void OnPointerEnter(GuiPointerEventArgs args) + { + if (IsEnabled) + HoverStyle?.Apply(this); + } + + public virtual void OnPointerLeave(GuiPointerEventArgs args) + { + if (IsEnabled) + HoverStyle?.Revert(this); + } + + public void Draw(IGuiRenderer renderer, float deltaSeconds) + { + DrawBackground(renderer, deltaSeconds); + + var font = Font ?? renderer.DefaultFont; + var textSize = font.GetStringRectangle(Text ?? string.Empty, Vector2.Zero).Size.ToVector2(); + var textPosition = BoundingRectangle.Center.ToVector2() - textSize * 0.5f; + var textInfo = new TextInfo(Text, font, textPosition, textSize, TextColor, ClippingRectangle); + + DrawText(renderer, deltaSeconds, textInfo); + } + + protected virtual void DrawBackground(IGuiRenderer renderer, float deltaSeconds) + { + renderer.DrawRegion(BackgroundRegion, BoundingRectangle, Color); + } + + protected virtual void DrawText(IGuiRenderer renderer, float deltaSeconds, TextInfo textInfo) + { + if (!string.IsNullOrWhiteSpace(textInfo.Text)) + renderer.DrawText(textInfo.Font, textInfo.Text, textInfo.Position + TextOffset, textInfo.Color, textInfo.ClippingRectangle); + } + + protected struct TextInfo + { + public TextInfo(string text, BitmapFont font, Vector2 position, Vector2 size, Color color, Rectangle? clippingRectangle) + { + Text = text; + Font = font; + Size = size; + Color = color; + ClippingRectangle = clippingRectangle; + Position = position; + } + + public string Text; + public BitmapFont Font; + public Vector2 Size; + public Color Color; + public Rectangle? ClippingRectangle; + public Vector2 Position; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Controls/GuiControlCollection.cs b/Source/MonoGame.Extended.Gui/Controls/GuiControlCollection.cs new file mode 100644 index 00000000..1d7784f8 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Controls/GuiControlCollection.cs @@ -0,0 +1,87 @@ +using System.Collections; +using System.Collections.Generic; + +namespace MonoGame.Extended.Gui.Controls +{ + public class GuiControlCollection : IList + { + public GuiControlCollection() + { + } + + public GuiControlCollection(GuiControl parent) + { + _parent = parent; + } + + private readonly GuiControl _parent; + private readonly List _list = new List(); + + public IEnumerator GetEnumerator() + { + return _list.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable) _list).GetEnumerator(); + } + + public void Add(GuiControl item) + { + item.Parent = _parent; + _list.Add(item); + } + + public void Clear() + { + foreach (var control in _list) + control.Parent = null; + + _list.Clear(); + } + + public bool Contains(GuiControl item) + { + return _list.Contains(item); + } + + public void CopyTo(GuiControl[] array, int arrayIndex) + { + _list.CopyTo(array, arrayIndex); + } + + public bool Remove(GuiControl item) + { + item.Parent = null; + return _list.Remove(item); + } + + public int Count => _list.Count; + + public bool IsReadOnly => ((ICollection) _list).IsReadOnly; + + public int IndexOf(GuiControl item) + { + return _list.IndexOf(item); + } + + public void Insert(int index, GuiControl item) + { + item.Parent = _parent; + _list.Insert(index, item); + } + + public void RemoveAt(int index) + { + _list[index].Parent = null; + _list.RemoveAt(index); + } + + public GuiControl this[int index] + { + get { return _list[index]; } + set { _list[index] = value; } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Controls/GuiImage.cs b/Source/MonoGame.Extended.Gui/Controls/GuiImage.cs new file mode 100644 index 00000000..5bee4c2a --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Controls/GuiImage.cs @@ -0,0 +1,16 @@ +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Gui.Controls +{ + public class GuiImage : GuiControl + { + public GuiImage() + { + } + + public GuiImage(TextureRegion2D backgroundRegion) + : base(backgroundRegion) + { + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Controls/GuiLabel.cs b/Source/MonoGame.Extended.Gui/Controls/GuiLabel.cs new file mode 100644 index 00000000..81d7f191 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Controls/GuiLabel.cs @@ -0,0 +1,22 @@ +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Gui.Controls +{ + public class GuiLabel : GuiControl + { + public GuiLabel() + { + } + + public GuiLabel(string text) + { + Text = text; + } + + public GuiLabel(string text, TextureRegion2D backgroundRegion) + : base(backgroundRegion) + { + Text = text; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Controls/GuiPanel.cs b/Source/MonoGame.Extended.Gui/Controls/GuiPanel.cs new file mode 100644 index 00000000..88f06d9a --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Controls/GuiPanel.cs @@ -0,0 +1,16 @@ +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Gui.Controls +{ + public class GuiPanel : GuiControl + { + public GuiPanel() + { + } + + public GuiPanel(TextureRegion2D backgroundRegion) + : base(backgroundRegion) + { + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Controls/GuiProgressBar.cs b/Source/MonoGame.Extended.Gui/Controls/GuiProgressBar.cs new file mode 100644 index 00000000..7a429f9b --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Controls/GuiProgressBar.cs @@ -0,0 +1,46 @@ +using System; +using Microsoft.Xna.Framework; +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Gui.Controls +{ + public class GuiProgressBar : GuiControl + { + public GuiProgressBar() + { + } + + public GuiProgressBar(TextureRegion2D backgroundRegion) + : base(backgroundRegion) + { + } + + private float _progress = 1.0f; + public float Progress + { + get { return _progress; } + set + { + // ReSharper disable once CompareOfFloatsByEqualityOperator + if(_progress != value) + { + _progress = value; + ProgressChanged?.Invoke(this, EventArgs.Empty); + } + } + } + + public TextureRegion2D BarRegion { get; set; } + + public event EventHandler ProgressChanged; + + protected override void DrawBackground(IGuiRenderer renderer, float deltaSeconds) + { + base.DrawBackground(renderer, deltaSeconds); + + var boundingRectangle = BoundingRectangle; + var clippingRectangle = new Rectangle(boundingRectangle.X, boundingRectangle.Y, (int)(boundingRectangle.Width * Progress), boundingRectangle.Height); + renderer.DrawRegion(BarRegion, BoundingRectangle, Color, clippingRectangle); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Controls/GuiTextBox.cs b/Source/MonoGame.Extended.Gui/Controls/GuiTextBox.cs new file mode 100644 index 00000000..1e3f84cb --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Controls/GuiTextBox.cs @@ -0,0 +1,107 @@ +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended.Input.InputListeners; +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Gui.Controls +{ + public class GuiTextBox : GuiControl + { + public GuiTextBox() + : this(backgroundRegion: null, text: string.Empty) + { + } + + public GuiTextBox(TextureRegion2D backgroundRegion) + : this(backgroundRegion: backgroundRegion, text: string.Empty) + { + } + + public GuiTextBox(TextureRegion2D backgroundRegion, string text) + : base(backgroundRegion) + { + Text = text; + } + + public int SelectionStart { get; set; } + + public override void OnPointerDown(GuiPointerEventArgs args) + { + base.OnPointerDown(args); + + SelectionStart = Text.Length; + _isCaretVisible = true; + } + + public override void OnKeyPressed(KeyboardEventArgs args) + { + base.OnKeyPressed(args); + + switch (args.Key) + { + case Keys.Back: + if (SelectionStart > 0 && Text.Length > 0) + { + SelectionStart--; + Text = Text.Remove(SelectionStart, 1); + } + break; + case Keys.Delete: + if (SelectionStart < Text.Length) + Text = Text.Remove(SelectionStart, 1); + break; + case Keys.Left: + if (SelectionStart > 0) + SelectionStart--; + break; + case Keys.Right: + if (SelectionStart < Text.Length) + SelectionStart++; + break; + default: + if (args.Character != null) + { + SelectionStart++; + Text += args.Character; + } + break; + } + + _isCaretVisible = true; + } + + private const float _caretBlinkRate = 0.53f; + private float _nextCaretBlink = _caretBlinkRate; + private bool _isCaretVisible = true; + + protected override void DrawText(IGuiRenderer renderer, float deltaSeconds, TextInfo textInfo) + { + var caretRectangle = textInfo.Font.GetStringRectangle(Text.Substring(0, SelectionStart), textInfo.Position); + + // TODO: Finish the caret position stuff when it's outside the clipping rectangle + if (caretRectangle.Right > ClippingRectangle.Right) + { + var textOffset = caretRectangle.Right - ClippingRectangle.Right; + textInfo.Position.X -= textOffset; + } + + caretRectangle.X = caretRectangle.Right < ClippingRectangle.Right ? caretRectangle.Right : ClippingRectangle.Right; + caretRectangle.Width = 1; + + base.DrawText(renderer, deltaSeconds, textInfo); + + if (IsFocused) + { + if (_isCaretVisible) + renderer.DrawRectangle(caretRectangle, TextColor); + + _nextCaretBlink -= deltaSeconds; + + if (_nextCaretBlink <= 0) + { + _isCaretVisible = !_isCaretVisible; + _nextCaretBlink = _caretBlinkRate; + } + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/GuiControlFactory.cs b/Source/MonoGame.Extended.Gui/GuiControlFactory.cs new file mode 100644 index 00000000..5ff6d3e8 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/GuiControlFactory.cs @@ -0,0 +1,43 @@ +using System; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Gui.Controls; + +namespace MonoGame.Extended.Gui +{ + public class GuiControlFactory + { + private readonly GuiSkin _skin; + + public GuiControlFactory(GuiSkin skin) + { + _skin = skin; + } + + public T Create(string template, Vector2 position, string name = null, string text = null) + where T : GuiControl, new() + { + var control = new T(); + _skin.GetStyle(template).Apply(control); + control.Name = name; + control.Position = position; + control.Text = text; + return control; + } + + public T Create(string template, Action onCreate) + where T : GuiControl, new() + { + var control = new T(); + _skin.GetStyle(template).Apply(control); + onCreate(control); + return control; + } + + public GuiControl Create(Type type, string template) + { + var control = (GuiControl) Activator.CreateInstance(type); + _skin.GetStyle(template).Apply(control); + return control; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/GuiControlStyle.cs b/Source/MonoGame.Extended.Gui/GuiControlStyle.cs new file mode 100644 index 00000000..415fcaf6 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/GuiControlStyle.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using MonoGame.Extended.Gui.Controls; + +namespace MonoGame.Extended.Gui +{ + public class GuiControlStyle : IDictionary + { + private Dictionary _previousState; + + public GuiControlStyle(Type targetType) + : this(targetType.FullName, targetType) + { + } + + public GuiControlStyle(string name, Type targetType) + { + Name = name; + TargetType = targetType; + _setters = new Dictionary(); + } + + public string Name { get; } + public Type TargetType { get; set; } + + private readonly Dictionary _setters; + + public void ApplyIf(GuiControl control, bool predicate) + { + if (predicate) + Apply(control); + else + Revert(control); + } + + public void Apply(GuiControl control) + { + _previousState = _setters + .ToDictionary(i => i.Key, i => TargetType.GetRuntimeProperty(i.Key)?.GetValue(control)); + + ChangePropertyValues(control, _setters); + } + + public void Revert(GuiControl control) + { + if (_previousState != null) + ChangePropertyValues(control, _previousState); + + _previousState = null; + } + + private static void ChangePropertyValues(GuiControl control, Dictionary setters) + { + var targetType = control.GetType(); + + foreach (var propertyName in setters.Keys) + { + var propertyInfo = targetType.GetRuntimeProperty(propertyName); + var value = setters[propertyName]; + + if(propertyInfo != null && propertyInfo.CanWrite) + propertyInfo.SetValue(control, value); + } + } + + public object this[string key] + { + get { return _setters[key]; } + set { _setters[key] = value; } + } + + public ICollection Keys => _setters.Keys; + public ICollection Values => _setters.Values; + public int Count => _setters.Count; + public bool IsReadOnly => false; + + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + public IEnumerator> GetEnumerator() => _setters.GetEnumerator(); + public void Add(string key, object value) => _setters.Add(key, value); + public void Add(KeyValuePair item) => _setters.Add(item.Key, item.Value); + public bool Remove(string key) => _setters.Remove(key); + public bool Remove(KeyValuePair item) => _setters.Remove(item.Key); + public void Clear() => _setters.Clear(); + public bool Contains(KeyValuePair item) => _setters.Contains(item); + public bool ContainsKey(string key) => _setters.ContainsKey(key); + public bool TryGetValue(string key, out object value) => _setters.TryGetValue(key, out value); + + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + throw new NotSupportedException(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/GuiCursor.cs b/Source/MonoGame.Extended.Gui/GuiCursor.cs new file mode 100644 index 00000000..dcfa72a1 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/GuiCursor.cs @@ -0,0 +1,11 @@ +using Microsoft.Xna.Framework; +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Gui +{ + public class GuiCursor + { + public TextureRegion2D TextureRegion { get; set; } + public Color Color { get; set; } = Color.White; + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/GuiPointerEventArgs.cs b/Source/MonoGame.Extended.Gui/GuiPointerEventArgs.cs new file mode 100644 index 00000000..ca44a825 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/GuiPointerEventArgs.cs @@ -0,0 +1,41 @@ +using System; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Input.InputListeners; + +namespace MonoGame.Extended.Gui +{ + public class GuiPointerEventArgs : EventArgs + { + private GuiPointerEventArgs() + { + } + + public Point Position { get; private set; } + public MouseButton Button { get; private set; } + public int ScrollWheelDelta { get; private set; } + public int ScrollWheelValue { get; private set; } + public TimeSpan Time { get; private set; } + + public static GuiPointerEventArgs FromMouseArgs(MouseEventArgs args) + { + return new GuiPointerEventArgs + { + Position = args.Position, + Button = args.Button, + ScrollWheelDelta = args.ScrollWheelDelta, + ScrollWheelValue = args.ScrollWheelValue, + Time = args.Time + }; + } + + public static GuiPointerEventArgs FromTouchArgs(TouchEventArgs args) + { + return new GuiPointerEventArgs + { + Position = args.Position, + Button = MouseButton.Left, + Time = args.Time + }; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/GuiScreen.cs b/Source/MonoGame.Extended.Gui/GuiScreen.cs new file mode 100644 index 00000000..33a84901 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/GuiScreen.cs @@ -0,0 +1,46 @@ +using System.Linq; +using MonoGame.Extended.Gui.Controls; +using Newtonsoft.Json; + +namespace MonoGame.Extended.Gui +{ + public class GuiScreen + { + public GuiScreen() + { + Controls = new GuiControlCollection(); + } + + [JsonProperty(Order = 1)] + public GuiSkin Skin { get; set; } + + [JsonProperty(Order = 2)] + public GuiControlCollection Controls { get; } + + public T FindControl(string name) + where T : GuiControl + { + return FindControl(Controls, name); + } + + private static T FindControl(GuiControlCollection controls, string name) + where T : GuiControl + { + foreach (var control in controls) + { + if (control.Name == name) + return control as T; + + if (control.Controls.Any()) + { + var childControl = FindControl(control.Controls, name); + + if (childControl != null) + return childControl; + } + } + + return null; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/GuiSkin.cs b/Source/MonoGame.Extended.Gui/GuiSkin.cs new file mode 100644 index 00000000..2e26fd93 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/GuiSkin.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using MonoGame.Extended.BitmapFonts; +using System.Linq; +using MonoGame.Extended.TextureAtlases; +using Newtonsoft.Json; + +namespace MonoGame.Extended.Gui +{ + public class KeyedCollection : ICollection + { + private readonly Func _getKey; + private readonly Dictionary _dictionary = new Dictionary(); + + public KeyedCollection(Func getKey) + { + _getKey = getKey; + } + + public TValue this[TKey key] => _dictionary[key]; + public ICollection Keys => _dictionary.Keys; + public ICollection Values => _dictionary.Values; + public int Count => _dictionary.Count; + public bool IsReadOnly => false; + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public IEnumerator GetEnumerator() + { + return _dictionary.Values.GetEnumerator(); + } + + public void Add(TValue item) + { + _dictionary.Add(_getKey(item), item); + } + + public void Clear() + { + _dictionary.Clear(); + } + + public bool Contains(TValue item) + { + return _dictionary.ContainsKey(_getKey(item)); + } + + public void CopyTo(TValue[] array, int arrayIndex) + { + throw new NotSupportedException(); + } + + public bool Remove(TValue item) + { + return _dictionary.Remove(_getKey(item)); + } + + public bool ContainsKey(TKey key) + { + return _dictionary.ContainsKey(key); + } + + public bool TryGetValue(TKey key, out TValue value) + { + return _dictionary.TryGetValue(key, out value); + } + } + + + + public class GuiSkin + { + public GuiSkin() + { + TextureAtlases = new List(); + Fonts = new List(); + NinePatches = new List(); + _styles = new KeyedCollection(s => s.Name); + } + + private readonly KeyedCollection _styles; + + [JsonProperty(Order = 0)] + public string Name { get; set; } + + [JsonProperty(Order = 1)] + public IList TextureAtlases { get; set; } + + [JsonProperty(Order = 2)] + public IList Fonts { get; set; } + + [JsonProperty(Order = 3)] + public IList NinePatches { get; set; } + + [JsonProperty(Order = 4)] + public BitmapFont DefaultFont => Fonts.FirstOrDefault(); + + [JsonProperty(Order = 5)] + public GuiCursor Cursor { get; set; } + + [JsonProperty(Order = 6)] + public ICollection Styles => _styles; + + public GuiControlStyle GetStyle(string name) + { + return _styles[name]; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/GuiSpriteBatchRenderer.cs b/Source/MonoGame.Extended.Gui/GuiSpriteBatchRenderer.cs new file mode 100644 index 00000000..137e27ea --- /dev/null +++ b/Source/MonoGame.Extended.Gui/GuiSpriteBatchRenderer.cs @@ -0,0 +1,73 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.BitmapFonts; +using MonoGame.Extended.Shapes; +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Gui +{ + public interface IGuiRenderer + { + BitmapFont DefaultFont { get; } + void Begin(); + void DrawRegion(TextureRegion2D textureRegion, Rectangle rectangle, Color color, Rectangle? clippingRectangle = null); + void DrawRegion(TextureRegion2D textureRegion, Vector2 position, Color color, Rectangle? clippingRectangle = null); + void DrawText(BitmapFont font, string text, Vector2 position, Color color, Rectangle? clippingRectangle = null); + void DrawRectangle(Rectangle rectangle, Color color, float thickness = 1f); + void End(); + } + + public class GuiSpriteBatchRenderer : IGuiRenderer + { + private readonly Func _getTransformMatrix; + private readonly SpriteBatch _spriteBatch; + + public GuiSpriteBatchRenderer(GraphicsDevice graphicsDevice, BitmapFont defaultFont, Func getTransformMatrix) + { + _getTransformMatrix = getTransformMatrix; + DefaultFont = defaultFont; + _spriteBatch = new SpriteBatch(graphicsDevice); + } + + public BitmapFont DefaultFont { get; } + public SpriteSortMode SortMode { get; set; } + public BlendState BlendState { get; set; } = BlendState.AlphaBlend; + public SamplerState SamplerState { get; set; } = SamplerState.PointClamp; + public DepthStencilState DepthStencilState { get; set; } = DepthStencilState.Default; + public RasterizerState RasterizerState { get; set; } = RasterizerState.CullNone; + public Effect Effect { get; set; } + + public void Begin() + { + _spriteBatch.Begin(SortMode, BlendState, SamplerState, DepthStencilState, RasterizerState, Effect, _getTransformMatrix()); + } + + public void End() + { + _spriteBatch.End(); + } + + public void DrawRegion(TextureRegion2D textureRegion, Rectangle rectangle, Color color, Rectangle? clippingRectangle = null) + { + if(textureRegion != null) + _spriteBatch.Draw(textureRegion, rectangle, color, clippingRectangle); + } + + public void DrawRegion(TextureRegion2D textureRegion, Vector2 position, Color color, Rectangle? clippingRectangle = null) + { + if (textureRegion != null) + _spriteBatch.Draw(textureRegion, position, color, clippingRectangle); + } + + public void DrawText(BitmapFont font, string text, Vector2 position, Color color, Rectangle? clippingRectangle = null) + { + _spriteBatch.DrawString(font ?? DefaultFont, text, position, color, clippingRectangle); + } + + public void DrawRectangle(Rectangle rectangle, Color color, float thickness = 1f) + { + _spriteBatch.DrawRectangle(rectangle, color, thickness); + } + } +} diff --git a/Source/MonoGame.Extended.Gui/GuiSystem.cs b/Source/MonoGame.Extended.Gui/GuiSystem.cs new file mode 100644 index 00000000..cc1a69eb --- /dev/null +++ b/Source/MonoGame.Extended.Gui/GuiSystem.cs @@ -0,0 +1,156 @@ +using System.Linq; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Gui.Controls; +using MonoGame.Extended.Input.InputListeners; +using MonoGame.Extended.ViewportAdapters; + +namespace MonoGame.Extended.Gui +{ + public class GuiSystem + { + private readonly IGuiRenderer _renderer; + private readonly MouseListener _mouseListener; + private readonly TouchListener _touchListener; + private readonly KeyboardListener _keyboardListener; + + private GuiControl _preFocusedControl; + private GuiControl _focusedControl; + private GuiControl _hoveredControl; + + public GuiSystem(ViewportAdapter viewportAdapter, IGuiRenderer renderer) + { + _renderer = renderer; + + _mouseListener = new MouseListener(viewportAdapter); + _mouseListener.MouseMoved += (s, e) => OnPointerMoved(GuiPointerEventArgs.FromMouseArgs(e)); + _mouseListener.MouseDown += (s, e) => OnPointerDown(GuiPointerEventArgs.FromMouseArgs(e)); + _mouseListener.MouseUp += (s, e) => OnPointerUp(GuiPointerEventArgs.FromMouseArgs(e)); + + _touchListener = new TouchListener(viewportAdapter); + _touchListener.TouchStarted += (s, e) => OnPointerDown(GuiPointerEventArgs.FromTouchArgs(e)); + _touchListener.TouchMoved += (s, e) => OnPointerMoved(GuiPointerEventArgs.FromTouchArgs(e)); + _touchListener.TouchEnded += (s, e) => OnPointerUp(GuiPointerEventArgs.FromTouchArgs(e)); + + _keyboardListener = new KeyboardListener(); + _keyboardListener.KeyTyped += (sender, args) => _focusedControl?.OnKeyTyped(args); + _keyboardListener.KeyPressed += (sender, args) => _focusedControl?.OnKeyPressed(args); + } + + public GuiScreen Screen { get; set; } + public Vector2 CursorPosition { get; set; } + + public void Update(GameTime gameTime) + { + _touchListener.Update(gameTime); + _mouseListener.Update(gameTime); + _keyboardListener.Update(gameTime); + } + + public void Draw(GameTime gameTime) + { + var deltaSeconds = gameTime.GetElapsedSeconds(); + + _renderer.Begin(); + + if (Screen != null) + { + DrawChildren(Screen.Controls, deltaSeconds); + + var cursor = Screen.Skin?.Cursor; + + if (cursor != null) + _renderer.DrawRegion(cursor.TextureRegion, CursorPosition, cursor.Color); + } + + _renderer.End(); + } + + private void DrawChildren(GuiControlCollection controls, float deltaSeconds) + { + foreach (var control in controls.Where(c => c.IsVisible)) + control.Draw(_renderer, deltaSeconds); + + foreach (var childControl in controls.Where(c => c.IsVisible)) + DrawChildren(childControl.Controls, deltaSeconds); + } + + private void OnPointerDown(GuiPointerEventArgs args) + { + if (Screen == null) + return; + + _preFocusedControl = FindControlAtPoint(Screen.Controls, args.Position); + _hoveredControl?.OnPointerDown(args); + } + + private void OnPointerUp(GuiPointerEventArgs args) + { + if (Screen == null) + return; + + var postFocusedControl = FindControlAtPoint(Screen.Controls, args.Position); + + if (_preFocusedControl == postFocusedControl) + { + var focusedControl = postFocusedControl; + + if (_focusedControl != focusedControl) + { + if (_focusedControl != null) + _focusedControl.IsFocused = false; + + _focusedControl = focusedControl; + + if (_focusedControl != null) + _focusedControl.IsFocused = true; + } + } + + _preFocusedControl = null; + _hoveredControl?.OnPointerUp(args); + } + + private void OnPointerMoved(GuiPointerEventArgs args) + { + CursorPosition = args.Position.ToVector2(); + + if (Screen == null) + return; + + var hoveredControl = FindControlAtPoint(Screen.Controls, args.Position); + + if (_hoveredControl != hoveredControl) + { + _hoveredControl?.OnPointerLeave(args); + _hoveredControl = hoveredControl; + _hoveredControl?.OnPointerEnter(args); + } + } + + private static GuiControl FindControlAtPoint(GuiControlCollection controls, Point point) + { + var topMostControl = (GuiControl) null; + + for (var i = controls.Count - 1; i >= 0; i--) + { + var control = controls[i]; + + if (control.IsVisible) + { + if (topMostControl == null && control.BoundingRectangle.Contains(point)) + topMostControl = control; + + if (control.Controls.Any()) + { + var child = FindControlAtPoint(control.Controls, point); + + if (child != null) + topMostControl = child; + } + } + } + + return topMostControl; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Keepers/GuiAlignmentHelper.cs b/Source/MonoGame.Extended.Gui/Keepers/GuiAlignmentHelper.cs new file mode 100644 index 00000000..f8f3251a --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Keepers/GuiAlignmentHelper.cs @@ -0,0 +1,72 @@ +namespace MonoGame.Extended.Gui.Keepers +{ + //public enum GuiHorizontalAlignment + //{ + // Left, + // Right, + // Centre, + // Stretch + //} + + //public enum GuiVerticalAlignment + //{ + // Top, + // Bottom, + // Centre, + // Stretch + //} + + //public static class GuiAlignmentHelper + //{ + // public static Rectangle GetDestinationRectangle(GuiHorizontalAlignment horizontalAlignment, + // GuiVerticalAlignment verticalAlignment, + // Rectangle sourceRectangle, Rectangle targetRectangle) + // { + // var x = GetHorizontalPosition(horizontalAlignment, sourceRectangle, targetRectangle); + // var y = GetVerticalPosition(verticalAlignment, sourceRectangle, targetRectangle); + // var width = horizontalAlignment == GuiHorizontalAlignment.Stretch + // ? targetRectangle.Width + // : sourceRectangle.Width; + // var height = verticalAlignment == GuiVerticalAlignment.Stretch + // ? targetRectangle.Height + // : sourceRectangle.Height; + // return new Rectangle(x, y, width, height); + // } + + // public static int GetHorizontalPosition(GuiHorizontalAlignment horizontalAlignment, Rectangle sourceRectangle, + // Rectangle targetRectangle) + // { + // switch (horizontalAlignment) + // { + // case GuiHorizontalAlignment.Stretch: + // case GuiHorizontalAlignment.Left: + // return targetRectangle.X; + // case GuiHorizontalAlignment.Right: + // return targetRectangle.Right - sourceRectangle.Width; + // case GuiHorizontalAlignment.Centre: + // return targetRectangle.X + targetRectangle.Width/2 - sourceRectangle.Width/2; + // default: + // throw new ArgumentOutOfRangeException(nameof(horizontalAlignment), horizontalAlignment, + // $"{horizontalAlignment} is not supported"); + // } + // } + + // public static int GetVerticalPosition(GuiVerticalAlignment verticalAlignment, Rectangle sourceRectangle, + // Rectangle targetRectangle) + // { + // switch (verticalAlignment) + // { + // case GuiVerticalAlignment.Stretch: + // case GuiVerticalAlignment.Top: + // return targetRectangle.Y; + // case GuiVerticalAlignment.Bottom: + // return targetRectangle.Bottom - sourceRectangle.Height; + // case GuiVerticalAlignment.Centre: + // return targetRectangle.Y + targetRectangle.Height/2 - sourceRectangle.Height/2; + // default: + // throw new ArgumentOutOfRangeException(nameof(verticalAlignment), verticalAlignment, + // $"{verticalAlignment} is not supported"); + // } + // } + //} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/MonoGame.Extended.Gui.csproj b/Source/MonoGame.Extended.Gui/MonoGame.Extended.Gui.csproj new file mode 100644 index 00000000..ce386816 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/MonoGame.Extended.Gui.csproj @@ -0,0 +1,96 @@ + + + + + 10.0 + Debug + AnyCPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9} + Library + Properties + MonoGame.Extended.Gui + MonoGame.Extended.Gui + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile111 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + 6 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll + + + ..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll + True + + + + + {49c87598-994c-49b5-bbb3-7ffc342635d3} + MonoGame.Extended.Input + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Gui/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..34a0c9d4 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Properties/AssemblyInfo.cs @@ -0,0 +1,28 @@ +using System.Resources; +using System.Reflection; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Gui")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Gui")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.Gui/Serialization/GuiControlJsonConverter.cs b/Source/MonoGame.Extended.Gui/Serialization/GuiControlJsonConverter.cs new file mode 100644 index 00000000..b17c132d --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Serialization/GuiControlJsonConverter.cs @@ -0,0 +1,51 @@ +using System; +using MonoGame.Extended.Gui.Controls; +using Newtonsoft.Json; + +namespace MonoGame.Extended.Gui.Serialization +{ + public class GuiControlJsonConverter : JsonConverter + { + private readonly IGuiSkinService _guiSkinService; + private readonly GuiControlStyleJsonConverter _styleConverter = new GuiControlStyleJsonConverter(); + private const string _styleProperty = "Style"; + + public GuiControlJsonConverter(IGuiSkinService guiSkinService) + { + _guiSkinService = guiSkinService; + } + + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + var controlFactory = new GuiControlFactory(_guiSkinService.Skin); + var style = (GuiControlStyle) _styleConverter.ReadJson(reader, objectType, existingValue, serializer); + var skin = (string) style[_styleProperty]; + var control = controlFactory.Create(style.TargetType, skin); + + object childControls; + + if (style.TryGetValue(nameof(GuiControl.Controls), out childControls)) + { + var controlCollection = childControls as GuiControlCollection; + + if (controlCollection != null) + { + foreach (var child in controlCollection) + control.Controls.Add(child); + } + } + + style.Apply(control); + return control; + } + + public override bool CanConvert(Type objectType) + { + return objectType == typeof(GuiControl); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Serialization/GuiControlStyleJsonConverter.cs b/Source/MonoGame.Extended.Gui/Serialization/GuiControlStyleJsonConverter.cs new file mode 100644 index 00000000..1704580b --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Serialization/GuiControlStyleJsonConverter.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using MonoGame.Extended.Collections; +using MonoGame.Extended.Gui.Controls; +using Newtonsoft.Json; + +namespace MonoGame.Extended.Gui.Serialization +{ + public class GuiControlStyleJsonConverter : JsonConverter + { + private readonly Dictionary _controlTypes; + private const string _typeProperty = "Type"; + private const string _nameProperty = "Name"; + + public GuiControlStyleJsonConverter() + { + _controlTypes = typeof(GuiControl) + .GetTypeInfo() + .Assembly + .ExportedTypes + .Where(t => t.GetTypeInfo().IsSubclassOf(typeof(GuiControl))) + .ToDictionary(t => t.Name); + } + + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + var style = (GuiControlStyle)value; + var dictionary = new Dictionary + { + [_typeProperty] = style.TargetType.Name + }; + + foreach (var keyValuePair in style) + dictionary.Add(keyValuePair.Key, keyValuePair.Value); + + serializer.Serialize(writer, dictionary); + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + var dictionary = serializer.Deserialize>(reader); + var name = dictionary.GetValueOrDefault(_nameProperty) as string; + var typeName = dictionary.GetValueOrDefault(_typeProperty) as string; + var targetType = typeName != null ? _controlTypes[typeName] : typeof(GuiControl); + var properties = targetType + .GetRuntimeProperties() + .ToDictionary(p => p.Name); + var style = new GuiControlStyle(name, targetType); + + foreach (var keyValuePair in dictionary.Where(i => i.Key != _typeProperty)) + { + var propertyName = keyValuePair.Key; + var rawValue = keyValuePair.Value; + + PropertyInfo propertyInfo; + var value = properties.TryGetValue(propertyName, out propertyInfo) + ? DeserializeValueAs(serializer, rawValue, propertyInfo.PropertyType) + : DeserializeValueAs(serializer, rawValue, typeof(object)); + + style.Add(propertyName, value); + } + + return style; + } + + private object DeserializeValueAs(JsonSerializer serializer, object value, Type type) + { + var json = JsonConvert.SerializeObject(value); + + using (var textReader = new StringReader(json)) + using (var jsonReader = new JsonTextReader(textReader)) + { + return serializer.Deserialize(jsonReader, type); + } + } + + public override bool CanConvert(Type objectType) + { + return objectType == typeof(GuiControlStyle); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Serialization/GuiJsonContractResolver.cs b/Source/MonoGame.Extended.Gui/Serialization/GuiJsonContractResolver.cs new file mode 100644 index 00000000..3b2fe01d --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Serialization/GuiJsonContractResolver.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; + +namespace MonoGame.Extended.Gui.Serialization +{ + public class GuiJsonContractResolver : DefaultContractResolver + { + protected override IList CreateProperties(Type type, MemberSerialization memberSerialization) + { + var properties = base.CreateProperties(type, memberSerialization); + + if (type.GetTypeInfo().IsAbstract) //.IsSubclassOf(typeof(GuiControl))) + { + properties.Insert(0, new JsonProperty + { + PropertyType = typeof(string), + PropertyName = "Type", + Readable = true, + Writable = false, + ValueProvider = new JsonShortTypeNameProvider() + }); + } + + return properties; + } + + private class JsonShortTypeNameProvider : IValueProvider + { + public JsonShortTypeNameProvider() + { + } + + public void SetValue(object target, object value) + { + } + + public object GetValue(object target) + { + return target.GetType().Name; + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Serialization/GuiJsonSerializer.cs b/Source/MonoGame.Extended.Gui/Serialization/GuiJsonSerializer.cs new file mode 100644 index 00000000..c36872b8 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Serialization/GuiJsonSerializer.cs @@ -0,0 +1,26 @@ +using Microsoft.Xna.Framework.Content; +using MonoGame.Extended.BitmapFonts; +using MonoGame.Extended.Serialization; +using Newtonsoft.Json; + +namespace MonoGame.Extended.Gui.Serialization +{ + public sealed class GuiJsonSerializer : JsonSerializer + { + public GuiJsonSerializer(ContentManager contentManager) + { + var textureRegionService = new GuiTextureRegionService(); + Converters.Add(new Vector2JsonConverter()); + Converters.Add(new Size2JsonConverter()); + Converters.Add(new ColorJsonConverter()); + Converters.Add(new ThicknessJsonConverter()); + Converters.Add(new ContentManagerJsonConverter(contentManager, font => font.Name)); + Converters.Add(new GuiControlStyleJsonConverter()); + Converters.Add(new GuiTextureAtlasJsonConverter(contentManager, textureRegionService)); + Converters.Add(new GuiNinePatchRegion2DJsonConverter(textureRegionService)); + Converters.Add(new TextureRegion2DJsonConverter(textureRegionService)); + ContractResolver = new GuiJsonContractResolver(); + Formatting = Formatting.Indented; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Serialization/GuiNinePatchRegion2DJsonConverter.cs b/Source/MonoGame.Extended.Gui/Serialization/GuiNinePatchRegion2DJsonConverter.cs new file mode 100644 index 00000000..ea437541 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Serialization/GuiNinePatchRegion2DJsonConverter.cs @@ -0,0 +1,28 @@ +using System; +using MonoGame.Extended.Serialization; +using MonoGame.Extended.TextureAtlases; +using Newtonsoft.Json; + +namespace MonoGame.Extended.Gui.Serialization +{ + public class GuiNinePatchRegion2DJsonConverter : NinePatchRegion2DJsonConverter + { + private readonly IGuiTextureRegionService _textureRegionService; + + public GuiNinePatchRegion2DJsonConverter(IGuiTextureRegionService textureRegionService) + : base(textureRegionService) + { + _textureRegionService = textureRegionService; + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + var ninePatch = base.ReadJson(reader, objectType, existingValue, serializer) as NinePatchRegion2D; + + if(ninePatch != null) + _textureRegionService.NinePatches.Add(ninePatch); + + return ninePatch; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Serialization/GuiSkinJsonConverter.cs b/Source/MonoGame.Extended.Gui/Serialization/GuiSkinJsonConverter.cs new file mode 100644 index 00000000..7a5e08b0 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Serialization/GuiSkinJsonConverter.cs @@ -0,0 +1,60 @@ +using System; +using System.IO; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; +using Newtonsoft.Json; + +namespace MonoGame.Extended.Gui.Serialization +{ + public interface IGuiSkinService + { + GuiSkin Skin { get; set; } + } + + public class GuiSkinService : IGuiSkinService + { + public GuiSkin Skin { get; set; } + } + + public class GuiSkinJsonConverter : JsonConverter + { + private readonly ContentManager _contentManager; + private readonly IGuiSkinService _skinService; + + public GuiSkinJsonConverter(ContentManager contentManager, IGuiSkinService skinService) + { + _contentManager = contentManager; + _skinService = skinService; + } + + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + if (reader.ValueType == typeof(string)) + { + var assetName = (string) reader.Value; + var skinSerializer = new GuiJsonSerializer(_contentManager); + + // TODO: Load this using the ContentManager instead. + using (var stream = TitleContainer.OpenStream(assetName)) + using (var streamReader = new StreamReader(stream)) + using (var jsonReader = new JsonTextReader(streamReader)) + { + var skin = skinSerializer.Deserialize(jsonReader); + _skinService.Skin = skin; + return skin; + } + } + + throw new InvalidOperationException("This converter can only convert from a string"); + } + + public override bool CanConvert(Type objectType) + { + return objectType == typeof(GuiSkin); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Serialization/GuiTextureAtlasJsonConverter.cs b/Source/MonoGame.Extended.Gui/Serialization/GuiTextureAtlasJsonConverter.cs new file mode 100644 index 00000000..ed3fe4d2 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Serialization/GuiTextureAtlasJsonConverter.cs @@ -0,0 +1,29 @@ +using System; +using Microsoft.Xna.Framework.Content; +using MonoGame.Extended.Serialization; +using MonoGame.Extended.TextureAtlases; +using Newtonsoft.Json; + +namespace MonoGame.Extended.Gui.Serialization +{ + public class GuiTextureAtlasJsonConverter : ContentManagerJsonConverter + { + private readonly IGuiTextureRegionService _textureRegionService; + + public GuiTextureAtlasJsonConverter(ContentManager contentManager, IGuiTextureRegionService textureRegionService) + : base(contentManager, atlas => atlas.Name) + { + _textureRegionService = textureRegionService; + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + var textureAtlas = base.ReadJson(reader, objectType, existingValue, serializer) as TextureAtlas; + + if (textureAtlas != null) + _textureRegionService.TextureAtlases.Add(textureAtlas); + + return textureAtlas; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/Serialization/GuiTextureRegionService.cs b/Source/MonoGame.Extended.Gui/Serialization/GuiTextureRegionService.cs new file mode 100644 index 00000000..86262186 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/Serialization/GuiTextureRegionService.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using System.Linq; +using MonoGame.Extended.Serialization; +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.Gui.Serialization +{ + public interface IGuiTextureRegionService : ITextureRegionService + { + IList TextureAtlases { get; } + IList NinePatches { get; } + } + + public class GuiTextureRegionService : IGuiTextureRegionService + { + public GuiTextureRegionService() + { + TextureAtlases = new List(); + NinePatches = new List(); + } + + public IList TextureAtlases { get; } + public IList NinePatches { get; } + + public TextureRegion2D GetTextureRegion(string name) + { + var ninePatch = NinePatches.FirstOrDefault(p => p.Name == name); + + if (ninePatch != null) + return ninePatch; + + return TextureAtlases + .Select(textureAtlas => textureAtlas.GetRegion(name)) + .FirstOrDefault(region => region != null); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Gui/packages.config b/Source/MonoGame.Extended.Gui/packages.config new file mode 100644 index 00000000..43f6cc68 --- /dev/null +++ b/Source/MonoGame.Extended.Gui/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Input.nuspec b/Source/MonoGame.Extended.Input.nuspec new file mode 100644 index 00000000..5c482483 --- /dev/null +++ b/Source/MonoGame.Extended.Input.nuspec @@ -0,0 +1,33 @@ + + + + + MonoGame.Extended.Input + $version$ + + An event based input system to MonoGame more awesome. + + Dylan Wilson + MonoGame.Extended.Input + Craftwork Games + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE + https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png + false + + Copyright 2017 - Craftwork Games + monogame extended input event based listener + + + + + + + + + + + + + + diff --git a/Source/MonoGame.Extended.Input/ExtendedPlayerIndex.cs b/Source/MonoGame.Extended.Input/ExtendedPlayerIndex.cs new file mode 100644 index 00000000..a153f02d --- /dev/null +++ b/Source/MonoGame.Extended.Input/ExtendedPlayerIndex.cs @@ -0,0 +1,32 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Input +{ + /// Player index enumeration with slots for 8 players + public enum ExtendedPlayerIndex + { + /// First player + One = PlayerIndex.One, + + /// Second player + Two = PlayerIndex.Two, + + /// Third player + Three = PlayerIndex.Three, + + /// Fourth player + Four = PlayerIndex.Four, + + /// Fifth player + Five, + + /// Sixth player + Six, + + /// Seventh player + Seven, + + /// Eigth player + Eight + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/GamePadEventArgs.cs b/Source/MonoGame.Extended.Input/InputListeners/GamePadEventArgs.cs similarity index 66% rename from Source/MonoGame.Extended/InputListeners/GamePadEventArgs.cs rename to Source/MonoGame.Extended.Input/InputListeners/GamePadEventArgs.cs index ced422ee..9b113c6d 100644 --- a/Source/MonoGame.Extended/InputListeners/GamePadEventArgs.cs +++ b/Source/MonoGame.Extended.Input/InputListeners/GamePadEventArgs.cs @@ -2,15 +2,15 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; -namespace MonoGame.Extended.InputListeners +namespace MonoGame.Extended.Input.InputListeners { /// - /// This class contains all information resulting from events fired by - /// . + /// This class contains all information resulting from events fired by + /// . /// public class GamePadEventArgs : EventArgs { - internal GamePadEventArgs(GamePadState previousState, GamePadState currentState, + public GamePadEventArgs(GamePadState previousState, GamePadState currentState, TimeSpan elapsedTime, PlayerIndex playerIndex, Buttons? button = null, float triggerState = 0, Vector2? thumbStickState = null) { @@ -25,38 +25,38 @@ namespace MonoGame.Extended.InputListeners } /// - /// The index of the controller. + /// The index of the controller. /// public PlayerIndex PlayerIndex { get; private set; } /// - /// The state of the controller in the previous update. + /// The state of the controller in the previous update. /// public GamePadState PreviousState { get; private set; } /// - /// The state of the controller in this update. + /// The state of the controller in this update. /// public GamePadState CurrentState { get; private set; } /// - /// The button that triggered this event, if appliable. + /// The button that triggered this event, if appliable. /// public Buttons Button { get; private set; } /// - /// The time elapsed since last event. + /// The time elapsed since last event. /// public TimeSpan ElapsedTime { get; private set; } /// - /// If a TriggerMoved event, displays the responsible trigger's position. + /// If a TriggerMoved event, displays the responsible trigger's position. /// public float TriggerState { get; private set; } /// - /// If a ThumbStickMoved event, displays the responsible stick's position. + /// If a ThumbStickMoved event, displays the responsible stick's position. /// public Vector2 ThumbStickState { get; private set; } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/GamePadListener.cs b/Source/MonoGame.Extended.Input/InputListeners/GamePadListener.cs similarity index 59% rename from Source/MonoGame.Extended/InputListeners/GamePadListener.cs rename to Source/MonoGame.Extended.Input/InputListeners/GamePadListener.cs index 152095a1..b7ea79b3 100644 --- a/Source/MonoGame.Extended/InputListeners/GamePadListener.cs +++ b/Source/MonoGame.Extended.Input/InputListeners/GamePadListener.cs @@ -3,16 +3,61 @@ using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; -namespace MonoGame.Extended.InputListeners +namespace MonoGame.Extended.Input.InputListeners { /// - /// This is a listener that exposes several events for easier handling of gamepads. - /// In order to initialise it, call the method - /// with a object. + /// This is a listener that exposes several events for easier handling of gamepads. /// public class GamePadListener : InputListener { - internal GamePadListener(GamePadListenerSettings settings) + private static readonly bool[] _gamePadConnections = new bool[4]; + + // These buttons are not to be evaluated normally, but with the debounce filter + // in their respective methods. + private readonly Buttons[] _excludedButtons = + { + Buttons.LeftTrigger, Buttons.RightTrigger, + Buttons.LeftThumbstickDown, Buttons.LeftThumbstickUp, Buttons.LeftThumbstickRight, + Buttons.LeftThumbstickLeft, + Buttons.RightThumbstickLeft, Buttons.RightThumbstickRight, Buttons.RightThumbstickUp, + Buttons.RightThumbstickDown + }; + + private GamePadState _currentState; + //private int _lastPacketNumber; + // Implementation doesn't work, see explanation in CheckAllButtons(). + private GameTime _gameTime; + private Buttons _lastButton; + private Buttons _lastLeftStickDirection; + private Buttons _lastRightStickDirection; + private GamePadState _lastThumbStickState; + + private GamePadState _lastTriggerState; + + private float _leftCurVibrationStrength; + private bool _leftStickDown; + private bool _leftTriggerDown; + private bool _leftVibrating; + private GameTime _previousGameTime; + private GamePadState _previousState; + private int _repeatedButtonTimer; + private float _rightCurVibrationStrength; + private bool _rightStickDown; + private bool _rightTriggerDown; + private bool _rightVibrating; + private TimeSpan _vibrationDurationLeft; + private TimeSpan _vibrationDurationRight; + private TimeSpan _vibrationStart; + + private float _vibrationStrengthLeft; + private float _vibrationStrengthRight; + + public GamePadListener() + : this(new GamePadListenerSettings()) + { + } + + public GamePadListener(GamePadListenerSettings settings) { PlayerIndex = settings.PlayerIndex; VibrationEnabled = settings.VibrationEnabled; @@ -24,86 +69,51 @@ namespace MonoGame.Extended.InputListeners TriggerDownTreshold = settings.TriggerDownTreshold; RepeatInitialDelay = settings.RepeatInitialDelay; RepeatDelay = settings.RepeatDelay; - + _previousGameTime = new GameTime(); _previousState = GamePadState.Default; } /// - /// This event fires whenever a controller connects or disconnects. In order - /// for it to work, the property must - /// be set to true. - /// - public static event EventHandler ControllerConnectionChanged; - - /// - /// This event fires whenever a button changes from the Up - /// to the Down state. - /// - public event EventHandler ButtonDown; - - /// - /// This event fires whenever a button changes from the Down - /// to the Up state. - /// - public event EventHandler ButtonUp; - - /// - /// This event fires repeatedly whenever a button is held sufficiently - /// long. Use this for things like menu navigation. - /// - public event EventHandler ButtonRepeated; - - /// - /// This event fires whenever a thumbstick changes position. - /// The parameter governing the sensitivity of this functionality - /// is . - /// - public event EventHandler ThumbStickMoved; - - /// - /// This event fires whenever a trigger changes position. - /// The parameter governing the sensitivity of this functionality - /// is . - /// - public event EventHandler TriggerMoved; - - /// - /// If set to true, the static event - /// will fire when any controller changes in connectivity status. - /// This functionality requires that you have one actively updating - /// . + /// If set to true, the static event + /// will fire when any controller changes in connectivity status. + /// + /// This functionality requires that you have one actively updating + /// . + /// /// public static bool CheckControllerConnections { get; set; } /// - /// The index of the controller. + /// The index of the controller. /// public PlayerIndex PlayerIndex { get; } /// - /// When a button is held down, the interval in which - /// ButtonRepeated fires. Value in milliseconds. + /// When a button is held down, the interval in which + /// ButtonRepeated fires. Value in milliseconds. /// public int RepeatDelay { get; } /// - /// The amount of time a button has to be held down - /// in order to fire ButtonRepeated the first time. - /// Value in milliseconds. + /// The amount of time a button has to be held down + /// in order to fire ButtonRepeated the first time. + /// Value in milliseconds. /// public int RepeatInitialDelay { get; } /// - /// Whether vibration is enabled for this controller. + /// Whether vibration is enabled for this controller. /// public bool VibrationEnabled { get; set; } /// - /// General setting for the strength of the left motor. - /// This motor has a slow, deep, powerful rumble. - /// This setting will modify all future vibrations - /// through this listener. + /// General setting for the strength of the left motor. + /// This motor has a slow, deep, powerful rumble. + /// + /// This setting will modify all future vibrations + /// through this listener. + /// /// public float VibrationStrengthLeft { @@ -113,10 +123,12 @@ namespace MonoGame.Extended.InputListeners } /// - /// General setting for the strength of the right motor. - /// This motor has a snappy, quick, high-pitched rumble. - /// This setting will modify all future vibrations - /// through this listener. + /// General setting for the strength of the right motor. + /// This motor has a snappy, quick, high-pitched rumble. + /// + /// This setting will modify all future vibrations + /// through this listener. + /// /// public float VibrationStrengthRight { @@ -126,93 +138,109 @@ namespace MonoGame.Extended.InputListeners } /// - /// The treshold of movement that has to be met in order - /// for the listener to fire an event with the trigger's - /// updated position. - /// In essence this defines the event's - /// resolution. - /// At a value of 0 this will fire every time - /// the trigger's position is not 0f. + /// The treshold of movement that has to be met in order + /// for the listener to fire an event with the trigger's + /// updated position. + /// + /// In essence this defines the event's + /// resolution. + /// + /// At a value of 0 this will fire every time + /// the trigger's position is not 0f. /// public float TriggerDeltaTreshold { get; } /// - /// The treshold of movement that has to be met in order - /// for the listener to fire an event with the thumbstick's - /// updated position. - /// In essence this defines the event's - /// resolution. - /// At a value of 0 this will fire every time - /// the thumbstick's position is not {x:0, y:0}. + /// The treshold of movement that has to be met in order + /// for the listener to fire an event with the thumbstick's + /// updated position. + /// + /// In essence this defines the event's + /// resolution. + /// + /// At a value of 0 this will fire every time + /// the thumbstick's position is not {x:0, y:0}. /// public float ThumbStickDeltaTreshold { get; } /// - /// How deep the triggers have to be depressed in order to - /// register as a ButtonDown event. + /// How deep the triggers have to be depressed in order to + /// register as a ButtonDown event. /// public float TriggerDownTreshold { get; } /// - /// How deep the triggers have to be depressed in order to - /// register as a ButtonDown event. + /// How deep the triggers have to be depressed in order to + /// register as a ButtonDown event. /// public float ThumbstickDownTreshold { get; } - private static readonly bool[] _gamePadConnections = new bool[4]; + /// + /// This event fires whenever a controller connects or disconnects. + /// + /// In order + /// for it to work, the property must + /// be set to true. + /// + /// + public static event EventHandler ControllerConnectionChanged; - private float _vibrationStrengthLeft; - private float _vibrationStrengthRight; + /// + /// This event fires whenever a button changes from the Up + /// to the Down state. + /// + public event EventHandler ButtonDown; - private GamePadState _currentState; - private GamePadState _previousState; - //private int _lastPacketNumber; - // Implementation doesn't work, see explanation in CheckAllButtons(). - private GameTime _gameTime; - private GameTime _previousGameTime; - private Buttons _lastButton; - private int _repeatedButtonTimer; + /// + /// This event fires whenever a button changes from the Down + /// to the Up state. + /// + public event EventHandler ButtonUp; - private GamePadState _lastTriggerState; - private GamePadState _lastThumbStickState; - private bool _leftTriggerDown; - private bool _rightTriggerDown; - private bool _leftStickDown; - private bool _rightStickDown; - private Buttons _lastRightStickDirection; - private Buttons _lastLeftStickDirection; + /// + /// This event fires repeatedly whenever a button is held sufficiently + /// long. Use this for things like menu navigation. + /// + public event EventHandler ButtonRepeated; - private float _leftCurVibrationStrength; - private float _rightCurVibrationStrength; - private TimeSpan _vibrationStart; - private TimeSpan _vibrationDurationLeft; - private TimeSpan _vibrationDurationRight; - private bool _leftVibrating; - private bool _rightVibrating; + /// + /// This event fires whenever a thumbstick changes position. + /// + /// The parameter governing the sensitivity of this functionality + /// is . + /// + /// + public event EventHandler ThumbStickMoved; - // These buttons are not to be evaluated normally, but with the debounce filter - // in their respective methods. - private readonly Buttons[] _excludedButtons = - { - Buttons.LeftTrigger, Buttons.RightTrigger, - Buttons.LeftThumbstickDown, Buttons.LeftThumbstickUp, Buttons.LeftThumbstickRight, Buttons.LeftThumbstickLeft, - Buttons.RightThumbstickLeft, Buttons.RightThumbstickRight, Buttons.RightThumbstickUp, Buttons.RightThumbstickDown - }; + /// + /// This event fires whenever a trigger changes position. + /// + /// The parameter governing the sensitivity of this functionality + /// is . + /// + /// + public event EventHandler TriggerMoved; /// - /// Send a vibration command to the controller. - /// Returns true if the operation succeeded. - /// Motor values that are unset preserve - /// their current vibration strength and duration. - /// Note: Vibration currently only works on select platforms, - /// like Monogame.Windows. + /// Send a vibration command to the controller. + /// Returns true if the operation succeeded. + /// + /// Motor values that are unset preserve + /// their current vibration strength and duration. + /// + /// Note: Vibration currently only works on select platforms, + /// like Monogame.Windows. /// /// Duration of the vibration in milliseconds. - /// The strength of the left motor. - /// This motor has a slow, deep, powerful rumble. - /// The strength of the right motor. - /// This motor has a snappy, quick, high-pitched rumble. + /// + /// The strength of the left motor. + /// This motor has a slow, deep, powerful rumble. + /// + /// + /// The strength of the right motor. + /// This motor has a snappy, quick, high-pitched rumble. + /// /// Returns true if the operation succeeded. public bool Vibrate(int durationMs, float leftStrength = float.NegativeInfinity, float rightStrength = float.NegativeInfinity) @@ -228,8 +256,8 @@ namespace MonoGame.Extended.InputListeners if (float.IsNegativeInfinity(rightStrength)) rstrength = _rightCurVibrationStrength; - var success = GamePad.SetVibration(PlayerIndex, lstrength * VibrationStrengthLeft, - rstrength * VibrationStrengthRight); + var success = GamePad.SetVibration(PlayerIndex, lstrength*VibrationStrengthLeft, + rstrength*VibrationStrengthRight); if (success) { _leftVibrating = true; @@ -237,17 +265,23 @@ namespace MonoGame.Extended.InputListeners if (leftStrength > 0) _vibrationDurationLeft = new TimeSpan(0, 0, 0, 0, durationMs); - else if (lstrength > 0) - _vibrationDurationLeft -= _gameTime.TotalGameTime - _vibrationStart; else - _leftVibrating = false; + { + if (lstrength > 0) + _vibrationDurationLeft -= _gameTime.TotalGameTime - _vibrationStart; + else + _leftVibrating = false; + } if (rightStrength > 0) _vibrationDurationRight = new TimeSpan(0, 0, 0, 0, durationMs); - else if (rstrength > 0) - _vibrationDurationRight -= _gameTime.TotalGameTime - _vibrationStart; else - _rightVibrating = false; + { + if (rstrength > 0) + _vibrationDurationRight -= _gameTime.TotalGameTime - _vibrationStart; + else + _rightVibrating = false; + } _vibrationStart = _gameTime.TotalGameTime; @@ -263,7 +297,7 @@ namespace MonoGame.Extended.InputListeners // ...At least, that's the theory. It doesn't seem to be implemented. Disabled for now. //if (_lastPacketNumber == _currentState.PacketNumber) // return; - foreach (Buttons button in Enum.GetValues(typeof (Buttons))) + foreach (Buttons button in Enum.GetValues(typeof(Buttons))) { if (_excludedButtons.Contains(button)) break; @@ -296,15 +330,17 @@ namespace MonoGame.Extended.InputListeners _rightTriggerDown = true; else _leftTriggerDown = true; - } - else if (prevdown && curstate < debounce) + else { - RaiseButtonUp(button); - if (button == Buttons.RightTrigger) - _rightTriggerDown = false; - else - _leftTriggerDown = false; + if (prevdown && (curstate < debounce)) + { + RaiseButtonUp(button); + if (button == Buttons.RightTrigger) + _rightTriggerDown = false; + else + _leftTriggerDown = false; + } } var prevstate = getButtonState(_lastTriggerState); @@ -312,14 +348,17 @@ namespace MonoGame.Extended.InputListeners { if (Math.Abs(prevstate - curstate) >= TriggerDeltaTreshold) { - TriggerMoved.Raise(this, MakeArgs(button, triggerstate: curstate)); + TriggerMoved?.Invoke(this, MakeArgs(button, curstate)); _lastTriggerState = _currentState; } } - else if (prevstate > TriggerDeltaTreshold) + else { - TriggerMoved.Raise(this, MakeArgs(button, triggerstate: curstate)); - _lastTriggerState = _currentState; + if (prevstate > TriggerDeltaTreshold) + { + TriggerMoved?.Invoke(this, MakeArgs(button, curstate)); + _lastTriggerState = _currentState; + } } } @@ -361,22 +400,28 @@ namespace MonoGame.Extended.InputListeners else _leftStickDown = true; } - else if (prevdown && curVector.Length() < debounce) + else { - RaiseButtonUp(prevdir); - if (button == Buttons.RightStick) - _rightStickDown = false; + if (prevdown && (curVector.Length() < debounce)) + { + RaiseButtonUp(prevdir); + if (button == Buttons.RightStick) + _rightStickDown = false; + else + _leftStickDown = false; + } else - _leftStickDown = false; - } - else if (prevdown && curdown && curdir != prevdir) - { - RaiseButtonUp(prevdir); - if (right) - _lastRightStickDirection = curdir; - else - _lastLeftStickDirection = curdir; - RaiseButtonDown(curdir); + { + if (prevdown && curdown && (curdir != prevdir)) + { + RaiseButtonUp(prevdir); + if (right) + _lastRightStickDirection = curdir; + else + _lastLeftStickDirection = curdir; + RaiseButtonDown(curdir); + } + } } var prevVector = getButtonState(_lastThumbStickState); @@ -384,16 +429,20 @@ namespace MonoGame.Extended.InputListeners { if (Vector2.Distance(curVector, prevVector) >= ThumbStickDeltaTreshold) { - ThumbStickMoved.Raise(this, MakeArgs(button, thumbStickState: curVector)); + ThumbStickMoved?.Invoke(this, MakeArgs(button, thumbStickState: curVector)); _lastThumbStickState = _currentState; } - } else if (prevVector.Length() > ThumbStickDeltaTreshold) + } + else { - ThumbStickMoved.Raise(this, MakeArgs(button, thumbStickState: curVector)); - _lastThumbStickState = _currentState; + if (prevVector.Length() > ThumbStickDeltaTreshold) + { + ThumbStickMoved?.Invoke(this, MakeArgs(button, thumbStickState: curVector)); + _lastThumbStickState = _currentState; + } } } - + internal static void CheckConnections() { if (!CheckControllerConnections) @@ -401,10 +450,11 @@ namespace MonoGame.Extended.InputListeners foreach (PlayerIndex index in Enum.GetValues(typeof(PlayerIndex))) { - if (GamePad.GetState(index).IsConnected ^ _gamePadConnections[(int) index]) // We need more XORs in this world + if (GamePad.GetState(index).IsConnected ^ _gamePadConnections[(int) index]) + // We need more XORs in this world { _gamePadConnections[(int) index] = !_gamePadConnections[(int) index]; - ControllerConnectionChanged.Raise(null, + ControllerConnectionChanged?.Invoke(null, new GamePadEventArgs(GamePadState.Default, GamePad.GetState(index), TimeSpan.Zero, index)); } } @@ -412,13 +462,13 @@ namespace MonoGame.Extended.InputListeners private void CheckVibrate() { - if (_leftVibrating && _vibrationStart + _vibrationDurationLeft < _gameTime.TotalGameTime) - Vibrate(0, leftStrength: 0); - if (_rightVibrating && _vibrationStart + _vibrationDurationRight < _gameTime.TotalGameTime) + if (_leftVibrating && (_vibrationStart + _vibrationDurationLeft < _gameTime.TotalGameTime)) + Vibrate(0, 0); + if (_rightVibrating && (_vibrationStart + _vibrationDurationRight < _gameTime.TotalGameTime)) Vibrate(0, rightStrength: 0); } - internal override void Update(GameTime gameTime) + public override void Update(GameTime gameTime) { _gameTime = gameTime; _currentState = GamePad.GetState(PlayerIndex); @@ -431,7 +481,8 @@ namespace MonoGame.Extended.InputListeners _previousGameTime = gameTime; _previousState = _currentState; } - private GamePadEventArgs MakeArgs(Buttons? button, + + private GamePadEventArgs MakeArgs(Buttons? button, float triggerstate = 0, Vector2? thumbStickState = null) { var elapsedTime = _gameTime.TotalGameTime - _previousGameTime.TotalGameTime; @@ -441,15 +492,15 @@ namespace MonoGame.Extended.InputListeners private void RaiseButtonDown(Buttons button) { - ButtonDown.Raise(this, MakeArgs(button)); - ButtonRepeated.Raise(this, MakeArgs(button)); + ButtonDown?.Invoke(this, MakeArgs(button)); + ButtonRepeated?.Invoke(this, MakeArgs(button)); _lastButton = button; _repeatedButtonTimer = 0; } private void RaiseButtonUp(Buttons button) { - ButtonUp.Raise(this, MakeArgs(button)); + ButtonUp?.Invoke(this, MakeArgs(button)); _lastButton = 0; } @@ -457,19 +508,22 @@ namespace MonoGame.Extended.InputListeners { _repeatedButtonTimer += _gameTime.ElapsedGameTime.Milliseconds; - if(_repeatedButtonTimer < RepeatInitialDelay || _lastButton == 0) + if ((_repeatedButtonTimer < RepeatInitialDelay) || (_lastButton == 0)) return; if (_repeatedButtonTimer < RepeatInitialDelay + RepeatDelay) { - ButtonRepeated.Raise(this, MakeArgs(_lastButton)); + ButtonRepeated?.Invoke(this, MakeArgs(_lastButton)); _repeatedButtonTimer = RepeatDelay + RepeatInitialDelay; } - else if (_repeatedButtonTimer > RepeatInitialDelay + RepeatDelay*2) + else { - ButtonRepeated.Raise(this, MakeArgs(_lastButton)); - _repeatedButtonTimer = RepeatDelay + RepeatInitialDelay; + if (_repeatedButtonTimer > RepeatInitialDelay + RepeatDelay*2) + { + ButtonRepeated?.Invoke(this, MakeArgs(_lastButton)); + _repeatedButtonTimer = RepeatDelay + RepeatInitialDelay; + } } } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Input/InputListeners/GamePadListenerSettings.cs b/Source/MonoGame.Extended.Input/InputListeners/GamePadListenerSettings.cs new file mode 100644 index 00000000..8c36e4c5 --- /dev/null +++ b/Source/MonoGame.Extended.Input/InputListeners/GamePadListenerSettings.cs @@ -0,0 +1,134 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Input.InputListeners +{ + /// + /// This is a class that contains settings to be used to initialise a . + /// + /// + public class GamePadListenerSettings : InputListenerSettings + { + public GamePadListenerSettings() + : this(PlayerIndex.One) + { + } + + /// + /// This is a class that contains settings to be used to initialise a . + /// Note: There are a number of extra settings that are settable properties. + /// + /// The index of the controller the listener will be tied to. + /// Whether vibration is enabled on the controller. + /// + /// General setting for the strength of the left motor. + /// This motor has a slow, deep, powerful rumble. + /// This setting will modify all future vibrations + /// through this listener. + /// + /// + /// General setting for the strength of the right motor. + /// This motor has a snappy, quick, high-pitched rumble. + /// This setting will modify all future vibrations + /// through this listener. + /// + public GamePadListenerSettings(PlayerIndex playerIndex, bool vibrationEnabled = true, + float vibrationStrengthLeft = 1.0f, float vibrationStrengthRight = 1.0f) + { + PlayerIndex = playerIndex; + VibrationEnabled = vibrationEnabled; + VibrationStrengthLeft = vibrationStrengthLeft; + VibrationStrengthRight = vibrationStrengthRight; + TriggerDownTreshold = 0.15f; + ThumbstickDownTreshold = 0.5f; + RepeatInitialDelay = 500; + RepeatDelay = 50; + } + + /// + /// The index of the controller. + /// + public PlayerIndex PlayerIndex { get; set; } + + /// + /// When a button is held down, the interval in which + /// ButtonRepeated fires. Value in milliseconds. + /// + public int RepeatDelay { get; set; } + + /// + /// The amount of time a button has to be held down + /// in order to fire ButtonRepeated the first time. + /// Value in milliseconds. + /// + public int RepeatInitialDelay { get; set; } + + + /// + /// Whether vibration is enabled for this controller. + /// + public bool VibrationEnabled { get; set; } + + /// + /// General setting for the strength of the left motor. + /// This motor has a slow, deep, powerful rumble. + /// + /// This setting will modify all future vibrations + /// through this listener. + /// + /// + public float VibrationStrengthLeft { get; set; } + + /// + /// General setting for the strength of the right motor. + /// This motor has a snappy, quick, high-pitched rumble. + /// + /// This setting will modify all future vibrations + /// through this listener. + /// + /// + public float VibrationStrengthRight { get; set; } + + /// + /// The treshold of movement that has to be met in order + /// for the listener to fire an event with the trigger's + /// updated position. + /// + /// In essence this defines the event's + /// resolution. + /// + /// At a value of 0 this will fire every time + /// the trigger's position is not 0f. + /// + public float TriggerDeltaTreshold { get; set; } + + /// + /// The treshold of movement that has to be met in order + /// for the listener to fire an event with the thumbstick's + /// updated position. + /// + /// In essence this defines the event's + /// resolution. + /// + /// At a value of 0 this will fire every time + /// the thumbstick's position is not {x:0, y:0}. + /// + public float ThumbStickDeltaTreshold { get; set; } + + /// + /// How deep the triggers have to be depressed in order to + /// register as a ButtonDown event. + /// + public float TriggerDownTreshold { get; set; } + + /// + /// How deep the triggers have to be depressed in order to + /// register as a ButtonDown event. + /// + public float ThumbstickDownTreshold { get; private set; } + + public override GamePadListener CreateListener() + { + return new GamePadListener(this); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Input/InputListeners/IInputService.cs b/Source/MonoGame.Extended.Input/InputListeners/IInputService.cs new file mode 100644 index 00000000..86573c6c --- /dev/null +++ b/Source/MonoGame.Extended.Input/InputListeners/IInputService.cs @@ -0,0 +1,13 @@ +namespace MonoGame.Extended.InputListeners +{ + public interface IInputService + { + KeyboardListener GuiKeyboardListener { get; } + + MouseListener GuiMouseListener { get; } + + GamePadListener GuiGamePadListener { get; } + + TouchListener GuiTouchListener { get; } + } +} diff --git a/Source/MonoGame.Extended.Input/InputListeners/InputListener.cs b/Source/MonoGame.Extended.Input/InputListeners/InputListener.cs new file mode 100644 index 00000000..82c78bb4 --- /dev/null +++ b/Source/MonoGame.Extended.Input/InputListeners/InputListener.cs @@ -0,0 +1,15 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Input.InputListeners +{ + public abstract class InputListener + { + protected InputListener() + { + } + + //public ViewportAdapter ViewportAdapter { get; set; } + + public abstract void Update(GameTime gameTime); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Input/InputListeners/InputListenerComponent.cs b/Source/MonoGame.Extended.Input/InputListeners/InputListenerComponent.cs new file mode 100644 index 00000000..302f6b5d --- /dev/null +++ b/Source/MonoGame.Extended.Input/InputListeners/InputListenerComponent.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Input.InputListeners +{ + public class InputListenerComponent : GameComponent, IUpdate + { + private readonly List _listeners; + + public InputListenerComponent(Game game) + : base(game) + { + _listeners = new List(); + } + + public InputListenerComponent(Game game, params InputListener[] listeners) + : base(game) + { + _listeners = new List(listeners); + } + + public IList Listeners => _listeners; + + public override void Update(GameTime gameTime) + { + base.Update(gameTime); + + if (Game.IsActive) + { + foreach (var listener in _listeners) + listener.Update(gameTime); + } + + GamePadListener.CheckConnections(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/InputListenerSettings.cs b/Source/MonoGame.Extended.Input/InputListeners/InputListenerSettings.cs similarity index 50% rename from Source/MonoGame.Extended/InputListeners/InputListenerSettings.cs rename to Source/MonoGame.Extended.Input/InputListeners/InputListenerSettings.cs index f73aab68..468a30b8 100644 --- a/Source/MonoGame.Extended/InputListeners/InputListenerSettings.cs +++ b/Source/MonoGame.Extended.Input/InputListeners/InputListenerSettings.cs @@ -1,8 +1,8 @@ -namespace MonoGame.Extended.InputListeners +namespace MonoGame.Extended.Input.InputListeners { public abstract class InputListenerSettings where T : InputListener { - internal abstract T CreateListener(); + public abstract T CreateListener(); } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Input/InputListeners/KeyboardEventArgs.cs b/Source/MonoGame.Extended.Input/InputListeners/KeyboardEventArgs.cs new file mode 100644 index 00000000..d6d01ab2 --- /dev/null +++ b/Source/MonoGame.Extended.Input/InputListeners/KeyboardEventArgs.cs @@ -0,0 +1,119 @@ +using System; +using Microsoft.Xna.Framework.Input; + +namespace MonoGame.Extended.Input.InputListeners +{ + public class KeyboardEventArgs : EventArgs + { + public KeyboardEventArgs(Keys key, KeyboardState keyboardState) + { + Key = key; + + Modifiers = KeyboardModifiers.None; + + if (keyboardState.IsKeyDown(Keys.LeftControl) || keyboardState.IsKeyDown(Keys.RightControl)) + Modifiers |= KeyboardModifiers.Control; + + if (keyboardState.IsKeyDown(Keys.LeftShift) || keyboardState.IsKeyDown(Keys.RightShift)) + Modifiers |= KeyboardModifiers.Shift; + + if (keyboardState.IsKeyDown(Keys.LeftAlt) || keyboardState.IsKeyDown(Keys.RightAlt)) + Modifiers |= KeyboardModifiers.Alt; + } + + public Keys Key { get; } + public KeyboardModifiers Modifiers { get; } + + public char? Character => ToChar(Key, Modifiers); + + private static char? ToChar(Keys key, KeyboardModifiers modifiers = KeyboardModifiers.None) + { + var isShiftDown = (modifiers & KeyboardModifiers.Shift) == KeyboardModifiers.Shift; + + if (key == Keys.A) return isShiftDown ? 'A' : 'a'; + if (key == Keys.B) return isShiftDown ? 'B' : 'b'; + if (key == Keys.C) return isShiftDown ? 'C' : 'c'; + if (key == Keys.D) return isShiftDown ? 'D' : 'd'; + if (key == Keys.E) return isShiftDown ? 'E' : 'e'; + if (key == Keys.F) return isShiftDown ? 'F' : 'f'; + if (key == Keys.G) return isShiftDown ? 'G' : 'g'; + if (key == Keys.H) return isShiftDown ? 'H' : 'h'; + if (key == Keys.I) return isShiftDown ? 'I' : 'i'; + if (key == Keys.J) return isShiftDown ? 'J' : 'j'; + if (key == Keys.K) return isShiftDown ? 'K' : 'k'; + if (key == Keys.L) return isShiftDown ? 'L' : 'l'; + if (key == Keys.M) return isShiftDown ? 'M' : 'm'; + if (key == Keys.N) return isShiftDown ? 'N' : 'n'; + if (key == Keys.O) return isShiftDown ? 'O' : 'o'; + if (key == Keys.P) return isShiftDown ? 'P' : 'p'; + if (key == Keys.Q) return isShiftDown ? 'Q' : 'q'; + if (key == Keys.R) return isShiftDown ? 'R' : 'r'; + if (key == Keys.S) return isShiftDown ? 'S' : 's'; + if (key == Keys.T) return isShiftDown ? 'T' : 't'; + if (key == Keys.U) return isShiftDown ? 'U' : 'u'; + if (key == Keys.V) return isShiftDown ? 'V' : 'v'; + if (key == Keys.W) return isShiftDown ? 'W' : 'w'; + if (key == Keys.X) return isShiftDown ? 'X' : 'x'; + if (key == Keys.Y) return isShiftDown ? 'Y' : 'y'; + if (key == Keys.Z) return isShiftDown ? 'Z' : 'z'; + + if (((key == Keys.D0) && !isShiftDown) || (key == Keys.NumPad0)) return '0'; + if (((key == Keys.D1) && !isShiftDown) || (key == Keys.NumPad1)) return '1'; + if (((key == Keys.D2) && !isShiftDown) || (key == Keys.NumPad2)) return '2'; + if (((key == Keys.D3) && !isShiftDown) || (key == Keys.NumPad3)) return '3'; + if (((key == Keys.D4) && !isShiftDown) || (key == Keys.NumPad4)) return '4'; + if (((key == Keys.D5) && !isShiftDown) || (key == Keys.NumPad5)) return '5'; + if (((key == Keys.D6) && !isShiftDown) || (key == Keys.NumPad6)) return '6'; + if (((key == Keys.D7) && !isShiftDown) || (key == Keys.NumPad7)) return '7'; + if (((key == Keys.D8) && !isShiftDown) || (key == Keys.NumPad8)) return '8'; + if (((key == Keys.D9) && !isShiftDown) || (key == Keys.NumPad9)) return '9'; + + if ((key == Keys.D0) && isShiftDown) return ')'; + if ((key == Keys.D1) && isShiftDown) return '!'; + if ((key == Keys.D2) && isShiftDown) return '@'; + if ((key == Keys.D3) && isShiftDown) return '#'; + if ((key == Keys.D4) && isShiftDown) return '$'; + if ((key == Keys.D5) && isShiftDown) return '%'; + if ((key == Keys.D6) && isShiftDown) return '^'; + if ((key == Keys.D7) && isShiftDown) return '&'; + if ((key == Keys.D8) && isShiftDown) return '*'; + if ((key == Keys.D9) && isShiftDown) return '('; + + if (key == Keys.Space) return ' '; + if (key == Keys.Tab) return '\t'; + if (key == Keys.Enter) return (char) 13; + if (key == Keys.Back) return (char) 8; + + if (key == Keys.Add) return '+'; + if (key == Keys.Decimal) return '.'; + if (key == Keys.Divide) return '/'; + if (key == Keys.Multiply) return '*'; + if (key == Keys.OemBackslash) return '\\'; + if ((key == Keys.OemComma) && !isShiftDown) return ','; + if ((key == Keys.OemComma) && isShiftDown) return '<'; + if ((key == Keys.OemOpenBrackets) && !isShiftDown) return '['; + if ((key == Keys.OemOpenBrackets) && isShiftDown) return '{'; + if ((key == Keys.OemCloseBrackets) && !isShiftDown) return ']'; + if ((key == Keys.OemCloseBrackets) && isShiftDown) return '}'; + if ((key == Keys.OemPeriod) && !isShiftDown) return '.'; + if ((key == Keys.OemPeriod) && isShiftDown) return '>'; + if ((key == Keys.OemPipe) && !isShiftDown) return '\\'; + if ((key == Keys.OemPipe) && isShiftDown) return '|'; + if ((key == Keys.OemPlus) && !isShiftDown) return '='; + if ((key == Keys.OemPlus) && isShiftDown) return '+'; + if ((key == Keys.OemMinus) && !isShiftDown) return '-'; + if ((key == Keys.OemMinus) && isShiftDown) return '_'; + if ((key == Keys.OemQuestion) && !isShiftDown) return '/'; + if ((key == Keys.OemQuestion) && isShiftDown) return '?'; + if ((key == Keys.OemQuotes) && !isShiftDown) return '\''; + if ((key == Keys.OemQuotes) && isShiftDown) return '"'; + if ((key == Keys.OemSemicolon) && !isShiftDown) return ';'; + if ((key == Keys.OemSemicolon) && isShiftDown) return ':'; + if ((key == Keys.OemTilde) && !isShiftDown) return '`'; + if ((key == Keys.OemTilde) && isShiftDown) return '~'; + if (key == Keys.Subtract) return '-'; + + return null; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/KeyboardListener.cs b/Source/MonoGame.Extended.Input/InputListeners/KeyboardListener.cs similarity index 76% rename from Source/MonoGame.Extended/InputListeners/KeyboardListener.cs rename to Source/MonoGame.Extended.Input/InputListeners/KeyboardListener.cs index 7e3d768a..4d9f5c1f 100644 --- a/Source/MonoGame.Extended/InputListeners/KeyboardListener.cs +++ b/Source/MonoGame.Extended.Input/InputListeners/KeyboardListener.cs @@ -3,37 +3,38 @@ using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; -namespace MonoGame.Extended.InputListeners +namespace MonoGame.Extended.Input.InputListeners { public class KeyboardListener : InputListener { - internal KeyboardListener() + private bool _isInitial; + private TimeSpan _lastPressTime; + + private Keys _previousKey; + private KeyboardState _previousState; + + public KeyboardListener() : this(new KeyboardListenerSettings()) { } - internal KeyboardListener(KeyboardListenerSettings settings) + public KeyboardListener(KeyboardListenerSettings settings) { InitialDelay = settings.InitialDelayMilliseconds; RepeatDelay = settings.RepeatDelayMilliseconds; } - - private Keys _previousKey; - private TimeSpan _lastPressTime; - private bool _isInitial; - private KeyboardState _previousState; + + public int InitialDelay { get; } + public int RepeatDelay { get; } public event EventHandler KeyTyped; public event EventHandler KeyPressed; public event EventHandler KeyReleased; - public int InitialDelay { get; } - public int RepeatDelay { get; } - - internal override void Update(GameTime gameTime) + public override void Update(GameTime gameTime) { var currentState = Keyboard.GetState(); - + RaisePressedEvents(gameTime, currentState); RaiseReleasedEvents(currentState); RaiseRepeatEvents(gameTime, currentState); @@ -45,7 +46,7 @@ namespace MonoGame.Extended.InputListeners { if (!currentState.IsKeyDown(Keys.LeftAlt) && !currentState.IsKeyDown(Keys.RightAlt)) { - var pressedKeys = Enum.GetValues(typeof (Keys)) + var pressedKeys = Enum.GetValues(typeof(Keys)) .Cast() .Where(key => currentState.IsKeyDown(key) && _previousState.IsKeyUp(key)); @@ -53,10 +54,10 @@ namespace MonoGame.Extended.InputListeners { var args = new KeyboardEventArgs(key, currentState); - KeyPressed.Raise(this, args); + KeyPressed?.Invoke(this, args); if (args.Character.HasValue) - KeyTyped.Raise(this, args); + KeyTyped?.Invoke(this, args); _previousKey = key; _lastPressTime = gameTime.TotalGameTime; @@ -67,24 +68,27 @@ namespace MonoGame.Extended.InputListeners private void RaiseReleasedEvents(KeyboardState currentState) { - var releasedKeys = Enum.GetValues(typeof (Keys)) + var releasedKeys = Enum.GetValues(typeof(Keys)) .Cast() .Where(key => currentState.IsKeyUp(key) && _previousState.IsKeyDown(key)); foreach (var key in releasedKeys) - KeyReleased.Raise(this, new KeyboardEventArgs(key, currentState)); + KeyReleased?.Invoke(this, new KeyboardEventArgs(key, currentState)); } private void RaiseRepeatEvents(GameTime gameTime, KeyboardState currentState) { var elapsedTime = (gameTime.TotalGameTime - _lastPressTime).TotalMilliseconds; - if (currentState.IsKeyDown(_previousKey) && ((_isInitial && elapsedTime > InitialDelay) || (!_isInitial && elapsedTime > RepeatDelay))) + if (currentState.IsKeyDown(_previousKey) && + (_isInitial && elapsedTime > InitialDelay || !_isInitial && elapsedTime > RepeatDelay)) { var args = new KeyboardEventArgs(_previousKey, currentState); + KeyPressed?.Invoke(this, args); + if (args.Character.HasValue) - KeyTyped.Raise(this, args); + KeyTyped?.Invoke(this, args); _lastPressTime = gameTime.TotalGameTime; _isInitial = false; diff --git a/Source/MonoGame.Extended/InputListeners/KeyboardListenerSettings.cs b/Source/MonoGame.Extended.Input/InputListeners/KeyboardListenerSettings.cs similarity index 80% rename from Source/MonoGame.Extended/InputListeners/KeyboardListenerSettings.cs rename to Source/MonoGame.Extended.Input/InputListeners/KeyboardListenerSettings.cs index 40e54802..6f284d6b 100644 --- a/Source/MonoGame.Extended/InputListeners/KeyboardListenerSettings.cs +++ b/Source/MonoGame.Extended.Input/InputListeners/KeyboardListenerSettings.cs @@ -1,4 +1,4 @@ -namespace MonoGame.Extended.InputListeners +namespace MonoGame.Extended.Input.InputListeners { public class KeyboardListenerSettings : InputListenerSettings { @@ -11,7 +11,7 @@ namespace MonoGame.Extended.InputListeners public int InitialDelayMilliseconds { get; set; } public int RepeatDelayMilliseconds { get; set; } - internal override KeyboardListener CreateListener() + public override KeyboardListener CreateListener() { return new KeyboardListener(this); } diff --git a/Source/MonoGame.Extended/InputListeners/KeyboardModifiers.cs b/Source/MonoGame.Extended.Input/InputListeners/KeyboardModifiers.cs similarity index 72% rename from Source/MonoGame.Extended/InputListeners/KeyboardModifiers.cs rename to Source/MonoGame.Extended.Input/InputListeners/KeyboardModifiers.cs index d99af078..de59905a 100644 --- a/Source/MonoGame.Extended/InputListeners/KeyboardModifiers.cs +++ b/Source/MonoGame.Extended.Input/InputListeners/KeyboardModifiers.cs @@ -1,6 +1,6 @@ using System; -namespace MonoGame.Extended.InputListeners +namespace MonoGame.Extended.Input.InputListeners { [Flags] public enum KeyboardModifiers @@ -9,5 +9,5 @@ namespace MonoGame.Extended.InputListeners Shift = 2, Alt = 4, None = 0 - }; + } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/MouseButton.cs b/Source/MonoGame.Extended.Input/InputListeners/MouseButton.cs similarity index 61% rename from Source/MonoGame.Extended/InputListeners/MouseButton.cs rename to Source/MonoGame.Extended.Input/InputListeners/MouseButton.cs index 99b0672d..e2936081 100644 --- a/Source/MonoGame.Extended/InputListeners/MouseButton.cs +++ b/Source/MonoGame.Extended.Input/InputListeners/MouseButton.cs @@ -1,5 +1,8 @@ -namespace MonoGame.Extended.InputListeners +using System; + +namespace MonoGame.Extended.Input.InputListeners { + [Flags] public enum MouseButton { None, @@ -8,5 +11,5 @@ namespace MonoGame.Extended.InputListeners Right, XButton1, XButton2 - }; + } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/MouseEventArgs.cs b/Source/MonoGame.Extended.Input/InputListeners/MouseEventArgs.cs similarity index 66% rename from Source/MonoGame.Extended/InputListeners/MouseEventArgs.cs rename to Source/MonoGame.Extended.Input/InputListeners/MouseEventArgs.cs index 54b27abe..c7cbc525 100644 --- a/Source/MonoGame.Extended/InputListeners/MouseEventArgs.cs +++ b/Source/MonoGame.Extended.Input/InputListeners/MouseEventArgs.cs @@ -3,26 +3,25 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; using MonoGame.Extended.ViewportAdapters; -namespace MonoGame.Extended.InputListeners +namespace MonoGame.Extended.Input.InputListeners { public class MouseEventArgs : EventArgs { - internal MouseEventArgs(ViewportAdapter viewportAdapter, TimeSpan time, MouseState previousState, MouseState currentState, + public MouseEventArgs(ViewportAdapter viewportAdapter, TimeSpan time, MouseState previousState, + MouseState currentState, MouseButton button = MouseButton.None) { PreviousState = previousState; CurrentState = currentState; - Position = viewportAdapter != null - ? viewportAdapter.PointToScreen(currentState.X, currentState.Y) - : new Point(currentState.X, currentState.Y); + Position = viewportAdapter?.PointToScreen(currentState.X, currentState.Y) + ?? new Point(currentState.X, currentState.Y); Button = button; ScrollWheelValue = currentState.ScrollWheelValue; ScrollWheelDelta = currentState.ScrollWheelValue - previousState.ScrollWheelValue; Time = time; } - // not sure if we want the time to be part of the public API? - internal TimeSpan Time { get; private set; } + public TimeSpan Time { get; private set; } public MouseState PreviousState { get; } public MouseState CurrentState { get; } @@ -33,4 +32,4 @@ namespace MonoGame.Extended.InputListeners public Vector2 DistanceMoved => CurrentState.Position.ToVector2() - PreviousState.Position.ToVector2(); } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/MouseListener.cs b/Source/MonoGame.Extended.Input/InputListeners/MouseListener.cs similarity index 70% rename from Source/MonoGame.Extended/InputListeners/MouseListener.cs rename to Source/MonoGame.Extended.Input/InputListeners/MouseListener.cs index 4ec1d2b2..e71a67f3 100644 --- a/Source/MonoGame.Extended/InputListeners/MouseListener.cs +++ b/Source/MonoGame.Extended.Input/InputListeners/MouseListener.cs @@ -1,38 +1,56 @@ using System; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; +using MonoGame.Extended.ViewportAdapters; -namespace MonoGame.Extended.InputListeners +namespace MonoGame.Extended.Input.InputListeners { + /// + /// Handles mouse input. + /// + /// + /// Due to nature of the listener, even when game is not in focus, listener will continue to be updated. + /// To avoid that, manual pause of Update() method is required whenever game loses focus. + /// To avoid having to do it manually, register listener to + /// public class MouseListener : InputListener { - internal MouseListener() + private MouseState _currentState; + private bool _dragging; + private GameTime _gameTime; + private bool _hasDoubleClicked; + private MouseEventArgs _mouseDownArgs; + private MouseEventArgs _previousClickArgs; + private MouseState _previousState; + + public MouseListener() : this(new MouseListenerSettings()) { } - internal MouseListener(MouseListenerSettings settings) + public MouseListener(ViewportAdapter viewportAdapter) + : this(new MouseListenerSettings()) { + ViewportAdapter = viewportAdapter; + } + + public MouseListener(MouseListenerSettings settings) + { + ViewportAdapter = settings.ViewportAdapter; DoubleClickMilliseconds = settings.DoubleClickMilliseconds; DragThreshold = settings.DragThreshold; } + public ViewportAdapter ViewportAdapter { get; } + public int DoubleClickMilliseconds { get; } public int DragThreshold { get; } /// - /// Returns true if the mouse has moved between the current and previous frames. + /// Returns true if the mouse has moved between the current and previous frames. /// /// true if the mouse has moved; otherwise, false. - public bool HasMouseMoved => _previousState.X != _currentState.X || _previousState.Y != _currentState.Y; - - private MouseState _currentState; - private MouseState _previousState; - private GameTime _gameTime; - private MouseEventArgs _previousClickArgs; - private MouseEventArgs _mouseDownArgs; - private bool _hasDoubleClicked; - private bool _dragging; + public bool HasMouseMoved => (_previousState.X != _currentState.X) || (_previousState.Y != _currentState.Y); public event EventHandler MouseDown; public event EventHandler MouseUp; @@ -46,12 +64,12 @@ namespace MonoGame.Extended.InputListeners private void CheckButtonPressed(Func getButtonState, MouseButton button) { - if (getButtonState(_currentState) == ButtonState.Pressed && - getButtonState(_previousState) == ButtonState.Released) + if ((getButtonState(_currentState) == ButtonState.Pressed) && + (getButtonState(_previousState) == ButtonState.Released)) { var args = new MouseEventArgs(ViewportAdapter, _gameTime.TotalGameTime, _previousState, _currentState, button); - MouseDown.Raise(this, args); + MouseDown?.Invoke(this, args); _mouseDownArgs = args; if (_previousClickArgs != null) @@ -61,7 +79,7 @@ namespace MonoGame.Extended.InputListeners if (clickMilliseconds <= DoubleClickMilliseconds) { - MouseDoubleClicked.Raise(this, args); + MouseDoubleClicked?.Invoke(this, args); _hasDoubleClicked = true; } @@ -72,8 +90,8 @@ namespace MonoGame.Extended.InputListeners private void CheckButtonReleased(Func getButtonState, MouseButton button) { - if (getButtonState(_currentState) == ButtonState.Released && - getButtonState(_previousState) == ButtonState.Pressed) + if ((getButtonState(_currentState) == ButtonState.Released) && + (getButtonState(_previousState) == ButtonState.Pressed)) { var args = new MouseEventArgs(ViewportAdapter, _gameTime.TotalGameTime, _previousState, _currentState, button); @@ -85,16 +103,16 @@ namespace MonoGame.Extended.InputListeners if (clickMovement < DragThreshold) { if (!_hasDoubleClicked) - MouseClicked.Raise(this, args); + MouseClicked?.Invoke(this, args); } else // If the mouse has moved between mouse down and mouse up { - MouseDragEnd.Raise(this, args); + MouseDragEnd?.Invoke(this, args); _dragging = false; } } - MouseUp.Raise(this, args); + MouseUp?.Invoke(this, args); _hasDoubleClicked = false; _previousClickArgs = args; @@ -103,17 +121,15 @@ namespace MonoGame.Extended.InputListeners private void CheckMouseDragged(Func getButtonState, MouseButton button) { - if (getButtonState(_currentState) == ButtonState.Pressed && - getButtonState(_previousState) == ButtonState.Pressed) + if ((getButtonState(_currentState) == ButtonState.Pressed) && + (getButtonState(_previousState) == ButtonState.Pressed)) { var args = new MouseEventArgs(ViewportAdapter, _gameTime.TotalGameTime, _previousState, _currentState, button); if (_mouseDownArgs.Button == args.Button) { if (_dragging) - { - MouseDrag.Raise(this, args); - } + MouseDrag?.Invoke(this, args); else { // Only start to drag based on DragThreshold @@ -122,14 +138,14 @@ namespace MonoGame.Extended.InputListeners if (clickMovement > DragThreshold) { _dragging = true; - MouseDragStart.Raise(this, args); + MouseDragStart?.Invoke(this, args); } } } } } - internal override void Update(GameTime gameTime) + public override void Update(GameTime gameTime) { _gameTime = gameTime; _currentState = Mouse.GetState(); @@ -149,7 +165,8 @@ namespace MonoGame.Extended.InputListeners // Check for any sort of mouse movement. if (HasMouseMoved) { - MouseMoved.Raise(this, new MouseEventArgs(ViewportAdapter, gameTime.TotalGameTime, _previousState, _currentState)); + MouseMoved?.Invoke(this, + new MouseEventArgs(ViewportAdapter, gameTime.TotalGameTime, _previousState, _currentState)); CheckMouseDragged(s => s.LeftButton, MouseButton.Left); CheckMouseDragged(s => s.MiddleButton, MouseButton.Middle); @@ -160,7 +177,10 @@ namespace MonoGame.Extended.InputListeners // Handle mouse wheel events. if (_previousState.ScrollWheelValue != _currentState.ScrollWheelValue) - MouseWheelMoved.Raise(this, new MouseEventArgs(ViewportAdapter, gameTime.TotalGameTime, _previousState, _currentState)); + { + MouseWheelMoved?.Invoke(this, + new MouseEventArgs(ViewportAdapter, gameTime.TotalGameTime, _previousState, _currentState)); + } _previousState = _currentState; } @@ -170,4 +190,4 @@ namespace MonoGame.Extended.InputListeners return Math.Abs(a.X - b.X) + Math.Abs(a.Y - b.Y); } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/MouseListenerSettings.cs b/Source/MonoGame.Extended.Input/InputListeners/MouseListenerSettings.cs similarity index 67% rename from Source/MonoGame.Extended/InputListeners/MouseListenerSettings.cs rename to Source/MonoGame.Extended.Input/InputListeners/MouseListenerSettings.cs index c5b0a339..1c0ca3df 100644 --- a/Source/MonoGame.Extended/InputListeners/MouseListenerSettings.cs +++ b/Source/MonoGame.Extended.Input/InputListeners/MouseListenerSettings.cs @@ -1,4 +1,6 @@ -namespace MonoGame.Extended.InputListeners +using MonoGame.Extended.ViewportAdapters; + +namespace MonoGame.Extended.Input.InputListeners { public class MouseListenerSettings : InputListenerSettings { @@ -11,8 +13,9 @@ public int DragThreshold { get; set; } public int DoubleClickMilliseconds { get; set; } + public ViewportAdapter ViewportAdapter { get; set; } - internal override MouseListener CreateListener() + public override MouseListener CreateListener() { return new MouseListener(this); } diff --git a/Source/MonoGame.Extended.Input/InputListeners/TouchEventArgs.cs b/Source/MonoGame.Extended.Input/InputListeners/TouchEventArgs.cs new file mode 100644 index 00000000..8172885b --- /dev/null +++ b/Source/MonoGame.Extended.Input/InputListeners/TouchEventArgs.cs @@ -0,0 +1,39 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Input.Touch; +using MonoGame.Extended.ViewportAdapters; + +namespace MonoGame.Extended.Input.InputListeners +{ + public class TouchEventArgs : EventArgs + { + public TouchEventArgs(ViewportAdapter viewportAdapter, TimeSpan time, TouchLocation location) + { + ViewportAdapter = viewportAdapter; + RawTouchLocation = location; + Time = time; + Position = viewportAdapter?.PointToScreen((int)location.Position.X, (int)location.Position.Y) + ?? location.Position.ToPoint(); + } + + public ViewportAdapter ViewportAdapter { get; } + public TouchLocation RawTouchLocation { get; } + public TimeSpan Time { get; } + public Point Position { get; } + + public override bool Equals(object other) + { + var args = other as TouchEventArgs; + + if (args == null) + return false; + + return ReferenceEquals(this, args) || RawTouchLocation.Id.Equals(args.RawTouchLocation.Id); + } + + public override int GetHashCode() + { + return RawTouchLocation.Id.GetHashCode(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Input/InputListeners/TouchListener.cs b/Source/MonoGame.Extended.Input/InputListeners/TouchListener.cs new file mode 100644 index 00000000..2a89cc9b --- /dev/null +++ b/Source/MonoGame.Extended.Input/InputListeners/TouchListener.cs @@ -0,0 +1,57 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Input.Touch; +using MonoGame.Extended.ViewportAdapters; + +namespace MonoGame.Extended.Input.InputListeners +{ + public class TouchListener : InputListener + { + public TouchListener() + : this(new TouchListenerSettings()) + { + } + + public TouchListener(ViewportAdapter viewportAdapter) + : this(new TouchListenerSettings()) + { + ViewportAdapter = viewportAdapter; + } + + public TouchListener(TouchListenerSettings settings) + { + ViewportAdapter = settings.ViewportAdapter; + } + + public ViewportAdapter ViewportAdapter { get; set; } + + public event EventHandler TouchStarted; + public event EventHandler TouchEnded; + public event EventHandler TouchMoved; + public event EventHandler TouchCancelled; + + public override void Update(GameTime gameTime) + { + var touchCollection = TouchPanel.GetState(); + + foreach (var touchLocation in touchCollection) + { + switch (touchLocation.State) + { + case TouchLocationState.Pressed: + TouchStarted?.Invoke(this, new TouchEventArgs(ViewportAdapter, gameTime.TotalGameTime, touchLocation)); + break; + case TouchLocationState.Moved: + TouchMoved?.Invoke(this, new TouchEventArgs(ViewportAdapter, gameTime.TotalGameTime, touchLocation)); + break; + case TouchLocationState.Released: + TouchEnded?.Invoke(this, new TouchEventArgs(ViewportAdapter, gameTime.TotalGameTime, touchLocation)); + break; + case TouchLocationState.Invalid: + TouchCancelled?.Invoke(this, new TouchEventArgs(ViewportAdapter, gameTime.TotalGameTime, touchLocation)); + break; + } + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Input/InputListeners/TouchListenerSettings.cs b/Source/MonoGame.Extended.Input/InputListeners/TouchListenerSettings.cs new file mode 100644 index 00000000..6d42b42b --- /dev/null +++ b/Source/MonoGame.Extended.Input/InputListeners/TouchListenerSettings.cs @@ -0,0 +1,18 @@ +using MonoGame.Extended.ViewportAdapters; + +namespace MonoGame.Extended.Input.InputListeners +{ + public class TouchListenerSettings : InputListenerSettings + { + public TouchListenerSettings() + { + } + + public ViewportAdapter ViewportAdapter { get; set; } + + public override TouchListener CreateListener() + { + return new TouchListener(this); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Input/MonoGame.Extended.Input.csproj b/Source/MonoGame.Extended.Input/MonoGame.Extended.Input.csproj new file mode 100644 index 00000000..62e5db79 --- /dev/null +++ b/Source/MonoGame.Extended.Input/MonoGame.Extended.Input.csproj @@ -0,0 +1,72 @@ + + + + + 10.0 + Debug + AnyCPU + {49C87598-994C-49B5-BBB3-7FFC342635D3} + Library + MonoGame.Extended.Input + MonoGame.Extended.Input + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile111 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + + + + + + + + + + + + + + + + + + + + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll + + + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Input/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Input/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..9e6acf1d --- /dev/null +++ b/Source/MonoGame.Extended.Input/Properties/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System.Resources; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Input")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Input")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.Input/packages.config b/Source/MonoGame.Extended.Input/packages.config new file mode 100644 index 00000000..28c01444 --- /dev/null +++ b/Source/MonoGame.Extended.Input/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui.nuspec b/Source/MonoGame.Extended.NuclexGui.nuspec new file mode 100644 index 00000000..c7d03a91 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui.nuspec @@ -0,0 +1,35 @@ + + + + + MonoGame.Extended.NuclexGui + $version$ + + A port of the Nuclex GUI system (https://nuclexframework.codeplex.com/) to make MonoGame more awesome. + + Dylan Wilson + MonoGame.Extended.NuclexGui + Craftwork Games + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE + https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png + false + + Copyright 2017 - Craftwork Games + monogame extended nuclex gui + + + + + + + + + + + + + + + + diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiButtonControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiButtonControl.cs new file mode 100644 index 00000000..49b9a7a0 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiButtonControl.cs @@ -0,0 +1,30 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + public class GuiButtonControl : GuiPressableControl + { + /// Text that will be shown on the button + public string Text; + + public Texture2D Texture; + public Rectangle SourceRectangle; + + /// Will be triggered when the button is pressed + public event EventHandler Pressed; + + /// Called when the button is pressed + protected override void OnPressed() + { + if (Pressed != null) + Pressed(this, EventArgs.Empty); + } + + public GuiButtonControl() : base() + { + SourceRectangle = new Rectangle(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiChoiceControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiChoiceControl.cs new file mode 100644 index 00000000..f67d5005 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiChoiceControl.cs @@ -0,0 +1,65 @@ +using System; + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// Control displaying an exclusive choice the user can select + /// + /// The choice control is equivalent to a radio button - if more than one + /// choice control is on a dialog, only one can be selected at a time. + /// To have several choice groups on a dialog, use panels to group them. + /// + public class GuiChoiceControl : GuiPressableControl + { + /// Whether the choice is currently selected + public bool Selected; + + /// Text that will be shown on the button + public string Text; + + /// Determines where text or image will be shown relative to control + public GuiPressableDescriptionPosition DescriptionPosition; + + /// Will be triggered when the choice is changed + public event EventHandler Changed; + + /// Called when the button is pressed + protected override void OnPressed() + { + if (!Selected) + { + Selected = true; + + // Unselect all sibling choice controls in the same container + UnselectSiblings(); + + OnChanged(); + } + } + + /// Triggers the changed event + protected virtual void OnChanged() + { + if (Changed != null) + Changed(this, EventArgs.Empty); + } + + /// Disables all sibling choices on the same level + private void UnselectSiblings() + { + // Disable any other choices in the same frame + if (Parent != null) + { + var siblings = Parent.Children; + for (var index = 0; index < siblings.Count; ++index) + { + var control = siblings[index] as GuiChoiceControl; + if ((control != null) && (control != this) && control.Selected) + { + control.Selected = false; + control.OnChanged(); + } + } + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiCloseWindowButtonControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiCloseWindowButtonControl.cs new file mode 100644 index 00000000..1bedbd76 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiCloseWindowButtonControl.cs @@ -0,0 +1,7 @@ +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// Control for the X button in the top right corner of a window + public class GuiCloseWindowButtonControl : GuiButtonControl + { + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiDraggableControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiDraggableControl.cs new file mode 100644 index 00000000..5eb28a7f --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiDraggableControl.cs @@ -0,0 +1,93 @@ +using MonoGame.Extended.Input.InputListeners; + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + // Always move in absolute (offset) coordinates? + // Or always move in fractional coordinates? + // + // Preferring b), because I restores the user's display to the exact + // state it was if the resolution is changed, including that fact that + // lower resolutions would cause the windows to go off-screen. + // + // However, b) would mean a call to GetAbsolutePosition() each frame. + // Which isn't so bad, but... avoidable with a) + + // Properties: + // Boundaries (for constraining a control to a region) + // Moveable (turn moveability on or off) + + /// Control the user can drag around with the mouse + public abstract class GuiDraggableControl : GuiControl + { + /// Whether the control is currently being dragged + private bool _beingDragged; + + /// Whether the control can be dragged + private bool _enableDragging; + + /// X coordinate at which the control was picked up + private float _pickupX; + + /// Y coordinate at which the control was picked up + private float _pickupY; + + /// Initializes a new draggable control + public GuiDraggableControl() + { + EnableDragging = true; + } + + /// Initializes a new draggable control + /// Whether the control can obtain the input focus + public GuiDraggableControl(bool canGetFocus) : base(canGetFocus) + { + EnableDragging = true; + } + + /// Whether the control can be dragged with the mouse + protected bool EnableDragging + { + get { return _enableDragging; } + set + { + _enableDragging = value; + _beingDragged &= value; + } + } + + /// Called when the mouse position is updated + /// X coordinate of the mouse cursor on the GUI + /// Y coordinate of the mouse cursor on the GUI + protected override void OnMouseMoved(float x, float y) + { + if (_beingDragged) + { + // Adjust the control's position within the container + Bounds.FractionalOffset(x - _pickupX, y - _pickupY); + } + else + { + // Remember the current mouse position so we know where the user picked + // up the control when a drag operation begins + _pickupX = x; + _pickupY = y; + } + } + + /// Called when a mouse button has been pressed down + /// Index of the button that has been pressed + protected override void OnMousePressed(MouseButton button) + { + if (button == MouseButton.Left) + _beingDragged = _enableDragging; + } + + /// Called when a mouse button has been released again + /// Index of the button that has been released + protected override void OnMouseReleased(MouseButton button) + { + if (button == MouseButton.Left) + _beingDragged = false; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiHorizontalSliderControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiHorizontalSliderControl.cs new file mode 100644 index 00000000..10b46735 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiHorizontalSliderControl.cs @@ -0,0 +1,40 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// Horizontal slider that can be moved using the mouse + public class GuiHorizontalSliderControl : GuiSliderControl + { + /// Obtains the region covered by the slider's thumb + /// The region covered by the slider's thumb + protected override RectangleF GetThumbRegion() + { + var bounds = GetAbsoluteBounds(); + + if (ThumbLocator != null) + return ThumbLocator.GetThumbPosition(bounds, ThumbPosition, ThumbSize); + var thumbWidth = bounds.Width*ThumbSize; + var thumbX = (bounds.Width - thumbWidth)*ThumbPosition; + + return new RectangleF(thumbX, 0, thumbWidth, bounds.Height); + } + + /// Moves the thumb to the specified location + /// Location the thumb will be moved to + protected override void MoveThumb(float x, float y) + { + var bounds = GetAbsoluteBounds(); + + var thumbWidth = bounds.Width*ThumbSize; + var maxX = bounds.Width - thumbWidth; + + // Prevent divide-by-zero if the thumb fills out the whole rail + if (maxX > 0.0f) + ThumbPosition = MathHelper.Clamp(x/maxX, 0.0f, 1.0f); + else + ThumbPosition = 0.0f; + + OnMoved(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiInputControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiInputControl.cs new file mode 100644 index 00000000..ab7c0514 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiInputControl.cs @@ -0,0 +1,293 @@ +using System; +using System.Text; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended.Input.InputListeners; + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// Control through which the user can enter text + /// + /// + /// Through this control, users can be asked to enter an arbitrary string + /// of characters, their name for example. Desktop users can enter text through + /// their normal keyboard where Windows' own key translation is used to + /// support regional settings and custom keyboard layouts. + /// + /// + /// XBox 360 users will open the virtual keyboard when the input box gets + /// the input focus and can add characters by selecting them from the virtual + /// keyboard's character matrix. + /// + /// + public class GuiInputControl : GuiControl, IWritable + { + /// Position of the cursor within the text + private int _caretPosition; + + /// Tick count at the time the caret was last moved + private int _lastCaretMovementTicks; + + /// X coordinate of the last known mouse position + private float _mouseX; + + /// Y coordinate of the last known mouse position + private float _mouseY; + + /// Array used to store characters before they are appended + private readonly char[ /*1*/] _singleCharArray; + + /// Text the user has entered into the text input control + private readonly StringBuilder _text; + + /// Whether user interaction with the control is allowed + public bool Enabled; + + /// Description to be displayed in the on-screen keyboard + public string GuideDescription; + + /// Title to be displayed in the on-screen keyboard + public string GuideTitle; + + /// + /// Can be set by renderers to enable cursor positioning by the mouse + /// + public IOpeningLocator OpeningLocator; + + /// Initializes a new text input control + public GuiInputControl() + { + _singleCharArray = new char[1]; + _text = new StringBuilder(64); + + Enabled = true; + GuideTitle = "Text Entry"; + GuideDescription = "Please enter the text for this input field"; + } + + /// Position of the cursor within the text + public int CaretPosition + { + get { return _caretPosition; } + set + { + if ((value < 0) || (value > Text.Length)) + throw new ArgumentException("Invalid caret position", "CaretPosition"); + + _caretPosition = value; + } + } + + /// Whether the control currently has the input focus + public bool HasFocus => (Screen != null) && + ReferenceEquals(Screen.FocusedControl, this); + + /// Elapsed milliseconds since the user last moved the caret + /// + /// This is an unusual property for an input box to have. It is retrieved by + /// the renderer and could be used for several purposes, such as lighting up + /// a control when text is entered to provide better visual tracking or + /// preventing the cursor from blinking whilst the user is typing. + /// + public int MillisecondsSinceLastCaretMovement => Environment.TickCount - _lastCaretMovementTicks; + + /// Text that is being displayed on the control + public string Text + { + get { return _text.ToString(); } + set + { + _text.Remove(0, _text.Length); + _text.Append(value); + + // Cursor index is in openings between letters, including before first + // and after last letter, so text.Length is a valid position. + if (_caretPosition > _text.Length) + _caretPosition = _text.Length; + } + } + + /// Called when the user has entered a character + /// Character that has been entered + void IWritable.OnCharacterEntered(char character) + { + OnCharacterEntered(character); + } + + /// Whether the control can currently obtain the input focus + bool IFocusable.CanGetFocus => Enabled; + + /// Title to be displayed in the on-screen keyboard + string IWritable.GuideTitle => GuideTitle; + + /// Description to be displayed in the on-screen keyboard + string IWritable.GuideDescription => GuideDescription; + + /// Called when the user has entered a character + /// Character that has been entered + protected virtual void OnCharacterEntered(char character) + { + // For some reason, Windows translates Backspace to a character :) + if (character != '\b') + { + UpdateLastCaretMovementTicks(); + + // There's no single-character overload on the XBox 360... + _singleCharArray[0] = character; + _text.Insert(_caretPosition, _singleCharArray); + ++_caretPosition; + } + } + + /// Called when a key on the keyboard has been pressed down + /// Code of the key that was pressed + /// + /// True if the key press was handles by the control, otherwise false. + /// + /// + /// If the control indicates that it didn't handle the key press, it will not + /// receive the associated key release notification. + /// + protected override bool OnKeyPressed(Keys keyCode) + { + // We only accept keys if we have the focus. If the notification is sent in search + // for a key handler without the input box being focused, we will not respond to + // the key press in order to not sabotage shortcut keys for other controls. + if (!HasFocus) + return false; + + switch (keyCode) + { + // Backspace: erase the character left of the caret + case Keys.Back: + { + if (_caretPosition > 0) + { + UpdateLastCaretMovementTicks(); + + _text.Remove(_caretPosition - 1, 1); + --_caretPosition; + } + break; + } + + // Delete: erase the character right of the caret + case Keys.Delete: + { + if (_caretPosition < _text.Length) + { + UpdateLastCaretMovementTicks(); + + _text.Remove(_caretPosition, 1); + } + break; + } + + // Cursor left: move the caret to the left by one character + case Keys.Left: + { + if (_caretPosition > 0) + { + UpdateLastCaretMovementTicks(); + + --_caretPosition; + } + break; + } + + // Cursor right: move the caret to the right by one character + case Keys.Right: + { + if (_caretPosition < _text.Length) + { + UpdateLastCaretMovementTicks(); + + ++_caretPosition; + } + break; + } + + // Home: place the caret before the first character + case Keys.Home: + { + UpdateLastCaretMovementTicks(); + _caretPosition = 0; + break; + } + + // Home: place the caret behind the last character + case Keys.End: + { + UpdateLastCaretMovementTicks(); + _caretPosition = _text.Length; + break; + } + + // Keys that can be used to navigate the dialog + case Keys.Tab: + case Keys.Up: + case Keys.Down: + case Keys.Enter: + { + return false; + } + } + + return true; + } + + /// Called when the mouse position is updated + /// X coordinate of the mouse cursor on the control + /// Y coordinate of the mouse cursor on the control + protected override void OnMouseMoved(float x, float y) + { + _mouseX = x; + _mouseY = y; + } + + /// Called when a mouse button has been pressed down + /// Index of the button that has been pressed + protected override void OnMousePressed(MouseButton button) + { + if (button == MouseButton.Left) + { + if (OpeningLocator != null) + { + var absoluteBounds = GetAbsoluteBounds(); + var absolutePosition = new Vector2(absoluteBounds.X + _mouseX, absoluteBounds.Y + _mouseY); + _caretPosition = OpeningLocator.GetClosestOpening(absoluteBounds, Text, absolutePosition); + } + else + { + // Nope, our renderer is being secretive + MoveCaretToEnd(); + } + } + } + + /// Handles user text input by a physical keyboard + /// Character that has been entered + internal void ProcessCharacter(char character) + { + // This notifications always concerns ourselves because it is only sent + // to the focused control + OnCharacterEntered(character); + } + + /// Moves the caret to the end of the text + private void MoveCaretToEnd() + { + UpdateLastCaretMovementTicks(); + _caretPosition = _text.Length; + } + + /// Updates the tick count when the caret was last moved + /// + /// Used to prevent the caret from blinking when + /// + private void UpdateLastCaretMovementTicks() + { + _lastCaretMovementTicks = Environment.TickCount; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiListControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiListControl.cs new file mode 100644 index 00000000..52595aa3 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiListControl.cs @@ -0,0 +1,269 @@ +using System; +using System.Collections.Generic; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Collections; +using MonoGame.Extended.Input.InputListeners; + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// How the list lets the user select items + public enum ListSelectionMode + { + /// The user is not allowed to select an item + None, + + /// The user can select only one item + Single, + + /// The user can pick any number of items + Multi + } + + /// List showing a sequence of items + public class GuiListControl : GuiControl, IFocusable + { + /// Items contained in the list + private readonly ObservableCollection _items; + + /// + /// Row locator through which the list can detect which row the mouse has + /// been pressed down on + /// + private IListRowLocator _listRowLocator; + + /// Last known Y coordinate of the mouse + private float _mouseY; + + /// Items currently selected in the list + private readonly ObservableCollection _selectedItems; + + /// How the list lets the user select from its items + private ListSelectionMode _selectionMode; + + /// Slider the lists uses to scroll through its items + private readonly GuiVerticalSliderControl _slider; + + public GuiListControl() + { + _items = new ObservableCollection(); + _items.Cleared += ItemsCleared; + _items.ItemAdded += ItemAdded; + _items.ItemRemoved += ItemRemoved; + + _selectedItems = new ObservableCollection(); + _selectedItems.Cleared += SelectionCleared; + _selectedItems.ItemAdded += SelectionAdded; + _selectedItems.ItemRemoved += SelectionRemoved; + + _slider = new GuiVerticalSliderControl(); + _slider.Bounds = new UniRectangle( + new UniScalar(1.0f, -20.0f), new UniScalar(0.0f, 0.0f), + new UniScalar(0.0f, 20.0f), new UniScalar(1.0f, 0.0f) + ); + Children.Add(_slider); + } + + /// How the user can select items in the list + public ListSelectionMode SelectionMode + { + get { return _selectionMode; } + set { _selectionMode = value; } + } + + /// Slider the list uses to scroll through its items + public GuiVerticalSliderControl Slider => _slider; + + /// Items being displayed in the list + public IList Items => _items; + + /// Indices of the items current selected in the list + public IList SelectedItems => _selectedItems; + + /// + /// Can be set by renderers to enable selection of list items by mouse + /// + public IListRowLocator ListRowLocator + { + get { return _listRowLocator; } + set + { + if (value != _listRowLocator) + { + _listRowLocator = value; + UpdateSlider(); + } + } + } + + /// Whether the control can currently obtain the input focus + bool IFocusable.CanGetFocus => true; + + /// Triggered when the selected items in list have changed + public event EventHandler SelectionChanged; + + /// Called when a mouse button has been pressed down + /// Index of the button that has been pressed + /// + /// If this method states that a mouse press is processed by returning + /// true, that means the control did something with it and the mouse press + /// should not be acted upon by any other listener. + /// + protected override void OnMousePressed(MouseButton button) + { + if (_listRowLocator != null) + { + var row = _listRowLocator.GetRow(GetAbsoluteBounds(), _slider.ThumbPosition, _items.Count, _mouseY); + if ((row >= 0) && (row < _items.Count)) + OnRowClicked(row); + } + } + + /// Called when the user has clicked on a row in the list + /// Row the user has clicked on + /// + /// The default behavior of the list control in multi select mode is to + /// toggle items that are clicked between selected and unselected. If you + /// need different behavior (for example, dragging a selected region or + /// selecting sequences of items by holding the shift key), you can override + /// this method and handle the selection behavior yourself. + /// + protected virtual void OnRowClicked(int row) + { + switch (_selectionMode) + { + // The user isn't allowed to select items in the list + case ListSelectionMode.None: + { + break; + } + + // Only a single item can be selected at a time + case ListSelectionMode.Single: + { + if (_selectedItems.Count == 1) + { + if (_selectedItems[0] == row) + break; // do not fire the SelectionChanged event + + _selectedItems[0] = row; + } + else + { + _selectedItems.Clear(); + _selectedItems.Add(row); + } + OnSelectionChanged(); + + break; + } + + // Any number of items can be selected + case ListSelectionMode.Multi: + { + if (!_selectedItems.Remove(row)) + _selectedItems.Add(row); + OnSelectionChanged(); + break; + } + } + } + + /// Called when the mouse wheel has been rotated + /// Number of ticks that the mouse wheel has been rotated + protected override void OnMouseWheel(float ticks) + { + const float itemsPerTick = 1.0f; + + if (_listRowLocator != null) + { + var bounds = GetAbsoluteBounds(); + + float totalitems = _items.Count; + var itemsInView = bounds.Height/_listRowLocator.GetRowHeight(bounds); + var scrollableItems = totalitems - itemsInView; + + _slider.ThumbPosition -= itemsPerTick/scrollableItems*ticks; + _slider.ThumbPosition = MathHelper.Clamp(_slider.ThumbPosition, 0.0f, 1.0f); + } + } + + /// Called when the mouse position is updated + /// X coordinate of the mouse cursor on the control + /// Y coordinate of the mouse cursor on the control + protected override void OnMouseMoved(float x, float y) + { + _mouseY = y; + } + + /// Called when the selected items in the list have changed + protected virtual void OnSelectionChanged() + { + if (SelectionChanged != null) + SelectionChanged(this, EventArgs.Empty); + } + + /// Called when an item is removed from the items list + /// List the item has been removed from + /// Contains the item that has been removed + private void ItemRemoved(object sender, ItemEventArgs arguments) + { + UpdateSlider(); + } + + /// Called when an item is added to the items list + /// List the item has been added to + /// Contains the item that has been added + private void ItemAdded(object sender, ItemEventArgs arguments) + { + UpdateSlider(); + } + + /// Called when the items list is about to clear itself + /// Items list that is about to clear itself + /// Not used + private void ItemsCleared(object sender, EventArgs arguments) + { + UpdateSlider(); + } + + /// Called when an entry is added to the list of selected items + /// List to which an item was added to + /// Contains the added item + private void SelectionAdded(object sender, ItemEventArgs arguments) + { + OnSelectionChanged(); + } + + /// + /// Called when an entry is removed from the list of selected items + /// + /// List from which an item was removed + /// Contains the removed item + private void SelectionRemoved(object sender, ItemEventArgs arguments) + { + OnSelectionChanged(); + } + + /// Called when the selected items list is about to clear itself + /// List that is about to clear itself + /// Not Used + private void SelectionCleared(object sender, EventArgs arguments) + { + OnSelectionChanged(); + } + + /// Updates the size and position of the list's slider + private void UpdateSlider() + { + if ((Screen != null) && (_listRowLocator != null)) + { + var bounds = GetAbsoluteBounds(); + + float totalitems = _items.Count; + var itemsInView = bounds.Height/_listRowLocator.GetRowHeight(bounds); + + _slider.ThumbSize = Math.Min(1.0f, itemsInView/totalitems); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiOptionControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiOptionControl.cs new file mode 100644 index 00000000..0e671e9b --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiOptionControl.cs @@ -0,0 +1,34 @@ +using System; + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// Control displaying an option the user can toggle on and off + public class GuiOptionControl : GuiPressableControl + { + /// Whether the option is currently selected + public bool Selected; + + /// Text that will be shown on the button + public string Text; + + /// Determines where text or image will be shown relative to control + public GuiPressableDescriptionPosition DescriptionPosition; + + /// Will be triggered when the choice is changed + public event EventHandler Changed; + + /// Called when the button is pressed + protected override void OnPressed() + { + Selected = !Selected; + OnChanged(); + } + + /// Triggers the changed event + protected virtual void OnChanged() + { + if (Changed != null) + Changed(this, EventArgs.Empty); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiSliderControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiSliderControl.cs new file mode 100644 index 00000000..3a8bb714 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiSliderControl.cs @@ -0,0 +1,118 @@ +using System; +using MonoGame.Extended.Input.InputListeners; + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// Base class for a slider that can be moved using the mouse + /// + /// Implements the common functionality for a slider moving either the direction + /// of the X or the Y axis (but not both). Derive any scroll bar-like controls + /// from this class to simplify their implementation. + /// + public abstract class GuiSliderControl : GuiControl + { + /// Whether the mouse cursor is hovering over the thumb + private bool _mouseOverThumb; + + /// X coordinate at which the thumb was picked up + private float _pickupX; + + /// Y coordinate at which the thumb was picked up + private float _pickupY; + + /// Whether the slider's thumb is currently in the depressed state + private bool _pressedDown; + + /// Can be set by renderers to allow the control to locate its thumb + public IThumbLocator ThumbLocator; + + /// Position of the thumb within the slider (0.0 .. 1.0) + public float ThumbPosition; + + /// Fraction of the slider filled by the thumb (0.0 .. 1.0) + public float ThumbSize; + + /// Initializes a new slider control + public GuiSliderControl() + { + ThumbPosition = 0.0f; + ThumbSize = 1.0f; + } + + /// whether the mouse is currently hovering over the thumb + public bool MouseOverThumb => _mouseOverThumb; + + /// Whether the pressable control is in the depressed state + public virtual bool ThumbDepressed => _pressedDown && _mouseOverThumb; + + /// Triggered when the slider has been moved + public event EventHandler Moved; + + /// Moves the thumb to the specified location + /// Location the thumb will be moved to + protected abstract void MoveThumb(float x, float y); + + /// Obtains the region covered by the slider's thumb + /// The region covered by the slider's thumb + protected abstract RectangleF GetThumbRegion(); + + /// Called when a mouse button has been pressed down + /// Index of the button that has been pressed + protected override void OnMousePressed(MouseButton button) + { + if (button == MouseButton.Left) + { + var thumbRegion = GetThumbRegion(); + if (thumbRegion.Contains(new Point2(_pickupX, _pickupY))) + { + _pressedDown = true; + + _pickupX -= thumbRegion.X; + _pickupY -= thumbRegion.Y; + } + } + } + + /// Called when a mouse button has been released again + /// Index of the button that has been released + protected override void OnMouseReleased(MouseButton button) + { + if (button == MouseButton.Left) + _pressedDown = false; + } + + /// Called when the mouse position is updated + /// X coordinate of the mouse cursor on the control + /// Y coordinate of the mouse cursor on the control + protected override void OnMouseMoved(float x, float y) + { + if (_pressedDown) + { + //RectangleF bounds = GetAbsoluteBounds(); + MoveThumb(x - _pickupX, y - _pickupY); + } + else + { + _pickupX = x; + _pickupY = y; + } + + _mouseOverThumb = GetThumbRegion().Contains(new Point2(x, y)); + } + + /// + /// Called when the mouse has left the control and is no longer hovering over it + /// + protected override void OnMouseLeft() + { + _mouseOverThumb = false; + } + + /// Fires the slider's Moved event + protected virtual void OnMoved() + { + if (Moved != null) + Moved(this, EventArgs.Empty); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiVerticalSliderControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiVerticalSliderControl.cs new file mode 100644 index 00000000..3f3ded0d --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiVerticalSliderControl.cs @@ -0,0 +1,40 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// Vertical slider that can be moved using the mouse + public class GuiVerticalSliderControl : GuiSliderControl + { + /// Obtains the region covered by the slider's thumb + /// The region covered by the slider's thumb + protected override RectangleF GetThumbRegion() + { + var bounds = GetAbsoluteBounds(); + + if (ThumbLocator != null) + return ThumbLocator.GetThumbPosition(bounds, ThumbPosition, ThumbSize); + var thumbHeight = bounds.Height*ThumbSize; + var thumbY = (bounds.Height - thumbHeight)*ThumbPosition; + + return new RectangleF(0, thumbY, bounds.Width, thumbHeight); + } + + /// Moves the thumb to the specified location + /// X coordinate for the new left border of the thumb + /// Y coordinate for the new upper border of the thumb + protected override void MoveThumb(float x, float y) + { + var bounds = GetAbsoluteBounds(); + + var thumbHeight = bounds.Height*ThumbSize; + var maxY = bounds.Height - thumbHeight; + + // Prevent divide-by-zero if the thumb fills out the whole rail + if (maxY > 0.0f) + ThumbPosition = MathHelper.Clamp(y/maxY, 0.0f, 1.0f); + else ThumbPosition = 0.0f; + + OnMoved(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiWindowControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiWindowControl.cs new file mode 100644 index 00000000..9e716033 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/GuiWindowControl.cs @@ -0,0 +1,31 @@ +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// A window for hosting other controls + public class GuiWindowControl : GuiDraggableControl + { + /// Text in the title bar of the window + public string Title; + + /// Initializes a new window control + public GuiWindowControl() : base(true) + { + } + + /// Whether the window is currently open + public bool IsOpen => Screen != null; + + /// Whether the window can be dragged with the mouse + public new bool EnableDragging + { + get { return base.EnableDragging; } + set { base.EnableDragging = value; } + } + + /// Closes the window + public void Close() + { + if (IsOpen) + Parent.Children.Remove(this); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IListRowLocator.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IListRowLocator.cs new file mode 100644 index 00000000..aee5ed95 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IListRowLocator.cs @@ -0,0 +1,38 @@ + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// + /// Interface which can be established between a control and its renderer to + /// allow a list control to locate the list row the cursor is in + /// + /// + /// A renderer can implement this interface and assign it to a control that + /// it renders so the control can ask the renderer for extended informations + /// regarding the look of its text. If this interface is provided, certain + /// controls will be able to correctly place the caret in user-editable text + /// when they are clicked by the mouse. + /// + public interface IListRowLocator + { + /// Calculates the list row the cursor is in + /// + /// Boundaries of the control, should be in absolute coordinates + /// + /// + /// Position of the thumb in the list's slider + /// + /// + /// Number of items contained in the list + /// + /// Vertical position of the cursor + /// The row the cursor is over + int GetRow(RectangleF bounds, float thumbPosition, int itemCount, float y); + + /// Determines the height of a row displayed in the list + /// + /// Boundaries of the control, should be in absolute coordinates + /// + /// The height of a single row in the list + float GetRowHeight(RectangleF bounds); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IOpeningLocator.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IOpeningLocator.cs new file mode 100644 index 00000000..2f453475 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IOpeningLocator.cs @@ -0,0 +1,32 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// + /// Interface which can be established between a control and its renderer to + /// allow the control to locate openings between letters + /// + /// + /// A renderer can implement this interface and assign it to a control that + /// it renders so the control can ask the renderer for extended informations + /// regarding the look of its text. If this interface is provided, certain + /// controls will be able to correctly place the caret in user-editable text + /// when they are clicked by the mouse. + /// + public interface IOpeningLocator + { + /// + /// Calculates which opening between two letters is closest to a position + /// + /// + /// Boundaries of the control, should be in absolute coordinates + /// + /// Text in which the nearest opening will be located + /// + /// Position to which the closest opening will be found, + /// should be in absolute coordinates + /// + /// The index of the opening closest to the provided position + int GetClosestOpening(RectangleF bounds, string text, Vector2 position); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IThumbLocator.cs b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IThumbLocator.cs new file mode 100644 index 00000000..75348c19 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/Desktop/IThumbLocator.cs @@ -0,0 +1,28 @@ + +namespace MonoGame.Extended.NuclexGui.Controls.Desktop +{ + /// + /// Interface which can be established between a control and its renderer to + /// allow a slider control to locate its thumb + /// + /// + /// A renderer can implement this interface and assign it to a control that + /// it renders so the control can ask the renderer for extended informations + /// regarding the look of its text. If this interface is provided, certain + /// controls will be able to correctly place the caret in user-editable text + /// when they are clicked by the mouse. + /// + public interface IThumbLocator + { + /// + /// Calculates the position of the thumb on a slider + /// + /// + /// Boundaries of the control, should be in absolute coordinates + /// + /// Relative position of the thumb (0.0 .. 1.0) + /// Relative size of the thumb (0.0 .. 1.0) + /// The region covered by the slider's thumb + RectangleF GetThumbPosition(RectangleF bounds, float thumbPosition, float thumbSize); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/GuiControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/GuiControl.cs new file mode 100644 index 00000000..33a48e9a --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/GuiControl.cs @@ -0,0 +1,360 @@ +using System; +using System.Collections.ObjectModel; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended.Input.InputListeners; +using MonoGame.Extended.NuclexGui.Input; + +namespace MonoGame.Extended.NuclexGui.Controls +{ + /// Represents an element in the user interface + /// + /// + /// Controls are always arranged in a tree where each control except the one at + /// the root of the tree has exactly one owner (the one at the root has no owner). + /// The design actively prevents you from assigning a control as child to + /// multiple parents. + /// + /// + /// The controls in the Nuclex.UserInterface library are fully independent of + /// their graphical representation. That means you can construct a dialog + /// without even having a graphics device in place, that you can move your + /// dialogs between different graphics devices and that you do not have to + /// even think about graphics device resets and similar trouble. + /// + /// + public partial class GuiControl + { + /// Whether this control can obtain the input focus + private readonly bool _affectsOrdering; + + /// Child controls belonging to this control + /// + /// Child controls are any controls that belong to this control. They don't + /// neccessarily need to be situated in this control's client area, but + /// their positioning will be relative to the parent's location. + /// + private readonly ParentingControlCollection _children; + + /// Name of the control instance (for programmatic identification) + private string _name; + + /// Control this control is contained in + private GuiControl _parent; + + /// GUI instance this control has been added to. Can be null. + private GuiScreen _screen; + + /// Initializes a new control + public GuiControl() : this(false) + { + } + + /// Initializes a new control + /// + /// Whether the control comes to the top of the hierarchy when clicked + /// + /// + /// + /// The parameter should be set for windows + /// and other free-floating panels which exist in parallel and which the user + /// might want to put on top of their siblings by clicking them. If the user + /// clicks on a child control of such a panel/window control, the panel/window + /// control will also be moved into the foreground. + /// + /// + /// It should not be set for normal controls which usually have no overlap, + /// like buttons. Otherwise, a button placed on the desktop could overdraw a + /// window when the button is clicked. The behavior would be well-defined and + /// controlled, but the user probably doesn't expect this ;-) + /// + /// + protected GuiControl(bool affectsOrdering) + { + _affectsOrdering = affectsOrdering; + + _children = new ParentingControlCollection(this); + } + + /// Location and extents of the control + public UniRectangle Bounds { get; set; } + + /// Children of the control + public Collection Children => _children; + + /// + /// True if clicking the control or its children moves the control into + /// the foreground of the drawing hierarchy + /// + public bool AffectsOrdering => _affectsOrdering; + + /// Parent control this control is contained in + /// + /// Can be null, but this is only the case for free-floating controls that have + /// not been added into a Gui. The only control that really keeps this field + /// set to null whilst the Gui is active is the root control in the Gui class. + /// + public GuiControl Parent => _parent; + + /// Name that can be used to uniquely identify the control + /// + /// This name acts as an unique identifier for a control. It primarily serves + /// as a means to programmatically identify the control and as a debugging aid. + /// Duplicate names are not allowed and will result in an exception being + /// thrown, the only exception is when the control's name is set to null. + /// + public string Name + { + get { return _name; } + set + { + // Don't do anything if we're given the same name we already have. This + // is not a pure performance optimization, it also prevents the control + // from reporting an name collision with itself in this special case :) + if (value != _name) + { + // Look for name collisions with our siblings + var parent = Parent; + if (parent != null) + { + if (parent._children.IsNameTaken(value)) + throw new InvalidOperationException("Another control is already using this name"); + } + + // Everything seems to be ok, accept the new name + _name = value; + } + } + } + + /// GUI instance this control belongs to. Can be null. + internal GuiScreen Screen => _screen; + + /// Control the mouse is currently over + protected internal GuiControl MouseOverControl => _mouseOverControl; + + /// Control that currently captured incoming input + protected internal GuiControl ActivatedControl => _activatedControl; + + /// Moves the control into the foreground + public void BringToFront() + { + // Doing nothing if we don't have a parent is okay since in that case, + // we're the root and we're the frontmost control in any case. If the user + // calls BringToFront() on a control before he integrates it into the GUI + // tree, this is expected behavior and only logical. + var control = this; + while (!ReferenceEquals(control._parent, null)) + { + var siblings = control._parent._children; + siblings.MoveToStart(siblings.IndexOf(control)); + + control = control._parent; + } + } + + /// Obtains the absolute boundaries of the control in screen coordinates + /// The control's absolute screen coordinate boundaries + /// + /// This method resolves the unified coordinates into absolute screen coordinates + /// that can be used to do hit-testing and rendering. The control is required to + /// be part of a GUI hierarchy that is assigned to a screen for this to work + /// since otherwise, there's no absolute coordinate frame into which the + /// unified coordinates could be resolved. + /// + public RectangleF GetAbsoluteBounds() + { + // Is this the topmost control in the hierarchy (the desktop control)? + if (ReferenceEquals(_parent, null)) + { + // Make sure the control is attached to a screen, otherwise, it's a free + // control not living in any GUI hierarchy and thus, does not have + // absolute bounds yet. + if (ReferenceEquals(_screen, null)) + { + throw new InvalidOperationException( + "Obtaining absolute bounds requires the control to be part of a screen" + ); + } + + // Transform the unified coordinate bounds into absolute pixel coordinates + // for the screen's dimensions + return Bounds.ToOffset(_screen.Width, _screen.Height); + } + // Control is the child of another control + + // Recursively determine the bounds of the parent control until we end up + // at the desktop control (or not, if this is a free living hierarchy, in + // which case the exception above will be triggered as soon as the top of + // the hierarchy is reached) + var parentBounds = _parent.GetAbsoluteBounds(); + + // Determine the controls absolute position based on the absolute + // dimensions and position of the parent control + var controlBounds = Bounds.ToOffset(parentBounds.Width, parentBounds.Height); + controlBounds.Offset(parentBounds.X, parentBounds.Y); + + // Done, controlBounds now contains the absolute screen coordinates of + // the control's boundaries. + return controlBounds; + } + + /// Called when an input command was sent to the control + /// Input command that has been triggered + /// Whether the command has been processed by the control + protected virtual bool OnCommand(Command command) + { + return false; + } + + /// Called when a button on the gamepad has been pressed + /// Button that has been pressed + /// True if the button press was handled by the control, otherwise false. + /// + /// If the control indicates that it didn't handle the key press, it will not + /// receive the associated key release notification. + /// + protected virtual bool OnButtonPressed(Buttons button) + { + return false; + } + + /// Called when a button on the gamepad has been released + /// Button that has been released + protected virtual void OnButtonReleased(Buttons button) + { + } + + /// Called when the mouse position is updated + /// X coordinate of the mouse cursor on the control + /// Y coordinate of the mouse cursor on the control + protected virtual void OnMouseMoved(float x, float y) + { + } + + /// Called when a mouse button has been pressed down + /// Index of the button that has been pressed + /// Whether the control has processed the mouse press + /// + /// If this method states that a mouse press is processed by returning + /// true, that means the control did something with it and the mouse press + /// should not be acted upon by any other listener. + /// + protected virtual void OnMousePressed(MouseButton button) + { + } + + /// Called when a mouse button has been released again + /// Index of the button that has been released + protected virtual void OnMouseReleased(MouseButton button) + { + } + + /// + /// Called when the mouse has left the control and is no longer hovering over it + /// + protected virtual void OnMouseLeft() + { + } + + /// + /// Called when the mouse has entered the control and is now hovering over it + /// + protected virtual void OnMouseEntered() + { + } + + /// Called when the mouse wheel has been rotated + /// Number of ticks that the mouse wheel has been rotated + protected virtual void OnMouseWheel(float ticks) + { + } + + /// Called when a key on the keyboard has been pressed down + /// Code of the key that was pressed + /// + /// True if the key press was handled by the control, otherwise false. + /// + /// + /// If the control indicates that it didn't handle the key press, it will not + /// receive the associated key release notification. This means that if you + /// return false from this method, you should under no circumstances do anything + /// with the information - you will not know when the key is released again + /// and another control might pick it up, causing a second key response. + /// + protected virtual bool OnKeyPressed(Keys keyCode) + { + return false; + } + + /// Called when a key on the keyboard has been released again + /// Code of the key that was released + protected virtual void OnKeyReleased(Keys keyCode) + { + } + + /// Called when a command was sent to the control + /// Command to be injected + /// Whether the command has been processed + internal bool ProcessCommand(Command command) + { + switch (command) + { + // These are not supported on the control level + case Command.SelectPrevious: + case Command.SelectNext: + { + return false; + } + + // These can be handled by user code if he so wishes + case Command.Up: + case Command.Down: + case Command.Left: + case Command.Right: + case Command.Accept: + case Command.Cancel: + { + return OnCommand(command); + } + + // Value not contained in enumation - should not be happening! + default: + { + throw new ArgumentException("Invalid command", "command"); + } + } + } + + /// Assigns a new parent to the control + /// New parent to assign to the control + internal void SetParent(GuiControl parent) + { + _parent = parent; + + // Have we been assigned to a parent? + if (_parent != null) + { + // If this ownership change transferred us to a different gui, we will + // have to migrate our visual and also the visuals of all our children. + if (!ReferenceEquals(_screen, parent._screen)) + SetScreen(parent._screen); + } + else + { + // No parent, we're now officially an orphan ;) + + // Orphans don't have screens! + SetScreen(null); + } + } + + /// Assigns a new GUI to the control + /// New GUI to assign to the control + internal void SetScreen(GuiScreen gui) + { + _screen = gui; + + _children.SetScreen(gui); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/GuiControlEventArgs.cs b/Source/MonoGame.Extended.NuclexGui/Controls/GuiControlEventArgs.cs new file mode 100644 index 00000000..c6780411 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/GuiControlEventArgs.cs @@ -0,0 +1,21 @@ +using System; + +namespace MonoGame.Extended.NuclexGui.Controls +{ + /// Event argument class that carries a control instance + public class ControlEventArgs : EventArgs + { + /// Control that will be accessible to the event subscribers + private readonly GuiControl _control; + + /// Initializes a new control event args instance + /// Control to provide to the subscribers of the event + public ControlEventArgs(GuiControl control) + { + _control = control; + } + + /// Control that has been provided for the event + public GuiControl Control => _control; + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/GuiControlInput.cs b/Source/MonoGame.Extended.NuclexGui/Controls/GuiControlInput.cs new file mode 100644 index 00000000..70b7f4f3 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/GuiControlInput.cs @@ -0,0 +1,460 @@ +using System.Diagnostics; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended.Input.InputListeners; + +namespace MonoGame.Extended.NuclexGui.Controls +{ + public partial class GuiControl + { + /// Control the mouse was pressed down on + private GuiControl _activatedControl; + + /// Number of game pad buttons being held down + private int _heldButtonCount; + + /// Number of keyboard keys being held down + private int _heldKeyCount; + + /// Mouse buttons the user is holding down over the control + private MouseButton _heldMouseButtons; + + /// Control the mouse is currently hovering over + private GuiControl _mouseOverControl; + + /// Whether any keys, mouse buttons or game pad buttons are beind held pressed + private bool AnyKeysOrButtonsPressed => (_heldMouseButtons != 0) || (_heldKeyCount > 0) || (_heldButtonCount > 0); + + /// Called when a button on the game pad has been pressed + /// Button that has been pressed + /// + /// True if the button press was processed by the control and future game pad + /// input belongs to the control until all buttons are released again + /// + internal bool ProcessButtonPress(Buttons button) + { + // If there's an activated control (one being held down by the mouse or having + // accepted a previous button press), this control will get the button press + // delivered, whether it wants to or not. + if (_activatedControl != null) + { + ++_heldButtonCount; + + // If one of our children is the activated control, pass on the message + if (_activatedControl != this) + _activatedControl.ProcessButtonPress(button); + else + OnButtonPressed(button); + + // We're already activated, so this button press is accepted in any case + return true; + } + + // A button has been pressed but no control is activated currently. This means we + // have to look for a control which feels responsible for the button press, + // starting with ourselves. + + // Does the user code in our derived class feel responsible for this button? + // If so, we're the new activated control and the button has been handled. + if (OnButtonPressed(button)) + { + _activatedControl = this; + ++_heldButtonCount; + return true; + } + + // Nope, we have to ask our children to find a control that feels responsible. + var encounteredOrderingControl = false; + foreach (var child in _children) + { + // We only process one child that has the affectsOrdering field set. This + // ensures that key presses will not be delivered to windows sitting behind + // another window. Other siblings that are not windows are asked still, so + // a bunch of buttons on the desktop would be asked in addition to a window. + if (child._affectsOrdering) + { + if (encounteredOrderingControl) + continue; + + encounteredOrderingControl = true; + } + + // Does this child feel responsible for the button press? + if (child.ProcessButtonPress(button)) + { + _activatedControl = child; + ++_heldButtonCount; + return true; + } + } + + // Neither we nor any of our children felt responsible for the button. Give up. + return false; + } + + /// Called when a button on the game pad has been released + /// Button that has been released + internal void ProcessButtonRelease(Buttons button) + { + // If we're the top level control, we will receive button presses and their related + // releases even if nobody was interested in the button presses. Thus, we silently + // ignore those presses we didn't accept. + if (_heldButtonCount == 0) + return; + + // If we receive a release, we must have a control on which the mouse + // was pressed (possibly even ourselves) + Debug.Assert( + _activatedControl != null, + "ProcessButtonRelease() had no control a button was pressed on; " + + "ProcessButtonRelease() was called on a control instance, but the control " + + "did not register a prior button press for itself or any of its child controls" + ); + + --_heldButtonCount; + if (_activatedControl != this) + _activatedControl.ProcessButtonRelease(button); + else + OnButtonReleased(button); + + // If no more keys buttons are being held down, clear the activated control + if (!AnyKeysOrButtonsPressed) + _activatedControl = null; + } + + /// + /// Called when the mouse has left the control and is no longer hovering over it + /// + internal void ProcessMouseLeave() + { + // Because the mouse has left us, if we have a mouse-over control, it also + // cannot be over one of our children Children leaving the parent container + // are not supported by design and for consistency, the behavior is tweaked + // so the children are left when the parent is left - this avoids strange + // behavior like being able to select a control if entering it with the mouse + // from the container side but being unable to select it if entering from + // the outside. + if (_mouseOverControl != null) + { + if (_mouseOverControl != this) + _mouseOverControl.ProcessMouseLeave(); + else + OnMouseLeft(); + + _mouseOverControl = null; + } + } + + /// Called when a mouse button has been pressed down + /// Index of the button that has been pressed + /// Whether the control has processed the mouse press + internal bool ProcessMousePress(MouseButton button) + { + // We remember the control the mouse was pressed over and won't replace it for + // as long as the mouse is being held down. This ensures the mouse release + // notification is always delivered to a control, even if the mouse is released + // after moving it away from the control. + if (_activatedControl == null) + { + _activatedControl = _mouseOverControl; + + // If we received an initial mouse press outside of our control area, + // someone is feeding us notifications we shouldn't be receiving. The best + // thing we can do is ignore this notification. This is a normal situation + // for the top level control which does the input filtering. + if (_activatedControl == null) + return false; + + // If we're a control that can appear on top of or below our siblings in + // the z order, bring us into foreground since the user just clicked on us. + if (_activatedControl != this) + { + if (_activatedControl._affectsOrdering) + _children.MoveToStart(_children.IndexOf(_activatedControl)); + } + } + + // Add the buttons to the list of mouse buttons being held down. This is used + // to track when we should clear the mouse-over control again. + _heldMouseButtons |= button; + + // If the mouse is over another control, pass on the mouse press. + if (_activatedControl != this) + return _activatedControl.ProcessMousePress(button); + // Otherwise, the mouse press applies to us + + // If this control can take the input focus, make it the focused control + if (_screen != null) + { + var focusable = this as IFocusable; + if ((focusable != null) && focusable.CanGetFocus) + _screen.FocusedControl = this; + } + + // Deliver the notification to the control deriving from us + OnMousePressed(button); + return true; + } + + /// Called when a mouse button has been released again + /// Index of the button that has been released + internal void ProcessMouseRelease(MouseButton button) + { + // When the mouse is clicked on game window's border and the user drags it + // into the GUI area, we will get a rogue mouse release message without + // the related mouse press. We ignore such rogue mouse release messages. + if ((_heldMouseButtons & button) != button) + return; + + // If we receive a release, we must have a control on which the mouse + // was pressed (possibly even ourselves) + Debug.Assert( + _activatedControl != null, + "ProcessMouseRelease() had no control the mouse was pressed on; " + + "ProcessMouseRelease() was called on a control instance, but the control " + + "did not register a prior mouse press over itself or any of its child controls" + ); + + // Remove the button from the list of mouse buttons being held down. This + // allows us to see when we can clear the mouse-press control. + _heldMouseButtons &= ~button; + + // If the mouse was held over one of our childs, pass on the notification + if (_activatedControl != this) + _activatedControl.ProcessMouseRelease(button); + else + OnMouseReleased(button); + + // If no more mouse buttons are being held down, clear the mouse-press control + if (!AnyKeysOrButtonsPressed) + _activatedControl = null; + } + + /// Processes mouse movement notifications + /// Absolute width of the control's container + /// Absolute height of the control's container + /// Absolute X position of the mouse within the container + /// Absolute Y position of the mouse within the container + internal void ProcessMouseMove(float containerWidth, float containerHeight, float x, float y) + { + // Calculate the absolute pixel position and size of this control + var size = Bounds.Size.ToOffset(containerWidth, containerHeight); + + // If a mouse button is being held down, the mouse movement notification is + // delivered to the control the mouse was pressed on first. This guarantees that + // windows can be dragged even if the mouse was close to the window border and + // leaves the window during dragging. + if (_activatedControl != null) + { + var mouseX = x - Bounds.Location.X.ToOffset(containerWidth); + var mouseY = y - Bounds.Location.Y.ToOffset(containerHeight); + + // Deliver the mouse move notifcation (either to our own user code or + // to the control the mouse of hovering over) + if (_activatedControl != this) + _activatedControl.ProcessMouseMove(size.X, size.Y, mouseX, mouseY); + else + OnMouseMoved(mouseX, mouseY); + } + + // Calculate the absolute mouse position. We cannot reuse the value calculated + // in the mouse-press handling code because the control could have been moved when + // we called OnMouseMoved() - a typical use case for draggable controls. + x -= Bounds.Location.X.ToOffset(containerWidth); + y -= Bounds.Location.Y.ToOffset(containerHeight); + + // Check whether the mouse is hovering over one of our children and if so, + // pass on the mouse movement notification to the child. + foreach (var control in _children) + { + var childBounds = control.Bounds.ToOffset(size.X, size.Y); + + // Is the mouse over this child? + if (childBounds.Contains(new Point2(x, y))) + { + SwitchMouseOverControl(control); + + // Hand over the mouse movement data to the child control the mouse is + // hovering over. If this is the mouse-press control, do nothing because + // we already delivered the movement notification out of order. + if (_mouseOverControl != _activatedControl) + _mouseOverControl.ProcessMouseMove(size.X, size.Y, x, y); + + // We got our mouse-over control, end processing. + return; + } + } + + // The mouse was over none of our children, so it must be hovering over us, + // unless we're the control being pressed down, in which case we'd also be + // getting mouse movement data outside of our boundaries. In this case, we + // only should become the mouse-over control is actually over us. + if ( + (x >= 0.0f) && (x < size.X) && + (y >= 0.0f) && (y < size.Y) + ) + { + SwitchMouseOverControl(this); + + // If we weren't pressed, we didn't deliver the out-of-order update to + // our implementation. Send our implementation a normal ordered update. + if (_activatedControl == null) + OnMouseMoved(x, y); + } + else + { + // redundant - our parent handles this - but convenient for unit tests + ProcessMouseLeave(); + } + } + + /// Called when the mouse wheel has been rotated + /// Number of ticks that the mouse wheel has been rotated + internal void ProcessMouseWheel(float ticks) + { + // If the mouse is being held down on a control, give it any mouse wheel + // messages. This enables some exotic uses for the mouse wheel, such as holding + // an object with the mouse button and scaling it with the wheel at the same time. + if (_activatedControl != null) + { + if (_activatedControl != this) + { + _activatedControl.ProcessMouseWheel(ticks); + return; + } + } + + // If the mouse wheel has been used normally, send the wheel notifications to + // the control the mouse is over. + if (_mouseOverControl != null) + { + if (_mouseOverControl != this) + { + _mouseOverControl.ProcessMouseWheel(ticks); + return; + } + } + + // We're the control the mouse is over, let the user code handle + // the mouse wheel rotation + OnMouseWheel(ticks); + } + + /// Called when a key on the keyboard has been pressed down + /// Code of the key that was pressed + /// Whether the key press is due to the user holding down a key + internal bool ProcessKeyPress(Keys keyCode, bool repetition) + { + // If there's an activated control (one being held down by the mouse or having + // accepted a previous key press), this control will get the key press delivered, + // whether it wants to or not. We don't want to track for each key which control + // is currently processing it. ;-) + if (_activatedControl != null) + { + if (!repetition) + ++_heldKeyCount; + + // If one of our children is the activated control, pass on the message + if (_activatedControl != this) + _activatedControl.ProcessKeyPress(keyCode, repetition); + else + OnKeyPressed(keyCode); // We're the activated control + + return true; // Ignore user code and always accept the key press + } + + // A key has been pressed but no control is activated currently. This means we + // have to look for a control which feels responsible for the key press, starting + // with ourselves. + + // Does the user code in our derived class feel responsible for this key? + // If so, we're the new activated control and the key has been handled. + if (OnKeyPressed(keyCode)) + { + _activatedControl = this; + ++_heldKeyCount; + return true; + } + + // Nope, we have to ask our children (and they, potentially recursively, theirs) + // to find a control that feels responsible. + var encounteredOrderingControl = false; + for (var index = 0; index < _children.Count; ++index) + { + var child = _children[index]; + + // We only process one child that has the affectsOrdering field set. This + // ensures that key presses will not be delivered to windows sitting behind + // another window. Other siblings that are not windows are asked still. + if (child._affectsOrdering) + { + if (encounteredOrderingControl) + continue; + else + encounteredOrderingControl = true; + } + + // Does this child feel responsible for the key press? + if (child.ProcessKeyPress(keyCode, repetition)) + { + _activatedControl = child; + ++_heldKeyCount; + return true; + } + } + + // Neither we nor any of our children felt responsible for the key. Give up. + return false; + } + + /// Called when a key on the keyboard has been released again + /// Code of the key that was released + internal void ProcessKeyRelease(Keys keyCode) + { + // Any key release should have an associated key press, otherwise, someone + // delivered notifications to us we should not have received. + Debug.Assert( + _heldKeyCount > 0, + "ProcessKeyRelease() called more often then ProcessKeyPress(); " + + "ProcessKeyRelease() was called more often the ProcessKeyPress() has been " + + "called with the repetition parameter set to false" + ); + + // If we receive a release, we must have a control on which the mouse + // was pressed (possibly even ourselves) + Debug.Assert( + _activatedControl != null, + "ProcessKeyRelease() had no control a key was pressed on; " + + "ProcessKeyRelease() was called on a control instance, but the control " + + "did not register a prior key press for itself or any of its child controls" + ); + + --_heldKeyCount; + if (_activatedControl != this) + _activatedControl.ProcessKeyRelease(keyCode); + else + OnKeyReleased(keyCode); + + // If no more keys buttons are being held down, clear the activated control + if (!AnyKeysOrButtonsPressed) + _activatedControl = null; + } + + /// Switches the mouse over control to a different control + /// New control the mouse is hovering over + private void SwitchMouseOverControl(GuiControl newMouseOverControl) + { + if (_mouseOverControl != newMouseOverControl) + { + // Tell the previous mouse-over control that the mouse is no longer + // hovering over it + if (_mouseOverControl != null) + _mouseOverControl.ProcessMouseLeave(); + + _mouseOverControl = newMouseOverControl; + + // Inform the new mouse-over control that the mouse is now over it + newMouseOverControl.OnMouseEntered(); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/GuiDesktopControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/GuiDesktopControl.cs new file mode 100644 index 00000000..6fc8b5ca --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/GuiDesktopControl.cs @@ -0,0 +1,33 @@ +namespace MonoGame.Extended.NuclexGui.Controls +{ + /// Control used to represent the desktop + public class GuiDesktopControl : GuiControl + { + /// Initializes a new control + public GuiDesktopControl() + { + } + + /// True if the mouse is currently hovering over a GUI element + public bool IsMouseOverGui + { + get + { + if (MouseOverControl == null) + return false; + return !ReferenceEquals(MouseOverControl, this); + } + } + + /// Whether the GUI holds ownership of the input devices + public bool IsInputCaptured + { + get + { + if (ActivatedControl == null) + return false; + return !ReferenceEquals(ActivatedControl, this); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/GuiLabelControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/GuiLabelControl.cs new file mode 100644 index 00000000..eb67ff61 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/GuiLabelControl.cs @@ -0,0 +1,21 @@ +namespace MonoGame.Extended.NuclexGui.Controls +{ + /// Control that draws a block of text + public class GuiLabelControl : GuiControl + { + /// Text to be rendered in the control's frame + public string Text; + + /// Initializes a new label control with an empty string + public GuiLabelControl() : this(string.Empty) + { + } + + /// Initializes a new label control + /// Text to be printed at the location of the label control + public GuiLabelControl(string text) + { + Text = text; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/GuiPressableControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/GuiPressableControl.cs new file mode 100644 index 00000000..c5b2e469 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/GuiPressableControl.cs @@ -0,0 +1,277 @@ +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended.Input.InputListeners; + +namespace MonoGame.Extended.NuclexGui.Controls +{ + /// + /// Determines where the text or image describing control will be located. + /// Used primarily for radio button and checkbox. + /// + public enum GuiPressableDescriptionPosition + { + North, + South, + West, + East + } + + /// User interface element the user can push down + public abstract class GuiPressableControl : GuiControl, IFocusable + { + /// Whether the mouse is hovering over the command + private bool _mouseHovering; + + /// Whether the command is pressed down using the game pad shortcut + private bool _pressedDownByGamepadShortcut; + + /// Whether the command is pressed down using the space key + private bool _pressedDownByKeyboard; + + /// Whether the command is pressed down using the keyboard shortcut + private bool _pressedDownByKeyboardShortcut; + + /// Whether the command is pressed down using the mouse + private bool _pressedDownByMouse; + + /// Whether the user can interact with the choice + public bool Enabled; + + /// Button that can be pressed to activate this command + public Buttons? ShortcutButton; + + /// Initializes a new command control + public GuiPressableControl() + { + Enabled = true; + } + + /// Whether the mouse pointer is hovering over the control + public bool MouseHovering => _mouseHovering; + + /// Whether the pressable control is in the depressed state + public virtual bool Depressed + { + get + { + var mousePressed = _mouseHovering && _pressedDownByMouse; + return + mousePressed || + _pressedDownByKeyboard || + _pressedDownByKeyboardShortcut || + _pressedDownByGamepadShortcut; + } + } + + /// Whether the control currently has the input focus + public bool HasFocus => (Screen != null) && + ReferenceEquals(Screen.FocusedControl, this); + + /// Whether the control can currently obtain the input focus + bool IFocusable.CanGetFocus => Enabled; + + /// + /// Called when the mouse has entered the control and is now hovering over it + /// + protected override void OnMouseEntered() + { + _mouseHovering = true; + } + + /// + /// Called when the mouse has left the control and is no longer hovering over it + /// + protected override void OnMouseLeft() + { + // Intentionally not calling OnActivated() here because the user has moved + // the mouse away from the command while holding the mouse button down - + // a common trick under windows to last-second-abort the clicking of a button + _mouseHovering = false; + } + + /// Called when a mouse button has been pressed down + /// Index of the button that has been pressed + protected override void OnMousePressed(MouseButton button) + { + if (Enabled) + { + if (button == MouseButton.Left) + _pressedDownByMouse = true; + } + } + + /// Called when a mouse button has been released again + /// Index of the button that has been released + protected override void OnMouseReleased(MouseButton button) + { + if (button == MouseButton.Left) + { + _pressedDownByMouse = false; + + // Only trigger the pressed event if the mouse was released over the control. + // The user can move the mouse cursor away from the control while still holding + // the mouse button down to do the well-known last-second-abort. + if (_mouseHovering && Enabled) + { + if (!Depressed) + OnPressed(); + } + } + } + + /// Called when a button on the gamepad has been pressed + /// Button that has been pressed + /// + /// True if the button press was handled by the control, otherwise false. + /// + protected override bool OnButtonPressed(Buttons button) + { + if (ShortcutButton.HasValue) + { + if (button == ShortcutButton.Value) + { + _pressedDownByGamepadShortcut = true; + return true; + } + } + + return false; + } + + /// Called when a button on the gamepad has been released + /// Button that has been released + protected override void OnButtonReleased(Buttons button) + { + if (ShortcutButton.HasValue) + { + if (_pressedDownByGamepadShortcut) + { + if (button == ShortcutButton.Value) + { + _pressedDownByGamepadShortcut = false; + if (!Depressed) + OnPressed(); + } + } + } + } + + /// Called when a key on the keyboard has been pressed down + /// Code of the key that was pressed + /// + /// True if the key press was handled by the control, otherwise false. + /// + protected override bool OnKeyPressed(Keys keyCode) + { + if (ShortcutButton.HasValue) + { + if (keyCode == KeyFromButton(ShortcutButton.Value)) + { + _pressedDownByKeyboardShortcut = true; + return true; + } + } + if (HasFocus) + { + if (keyCode == Keys.Space) + { + _pressedDownByKeyboard = true; + return true; + } + } + + return false; + } + + /// Called when a key on the keyboard has been released again + /// Code of the key that was released + protected override void OnKeyReleased(Keys keyCode) + { + if (_pressedDownByKeyboardShortcut) + { + if (ShortcutButton.HasValue) + { + if (keyCode == KeyFromButton(ShortcutButton.Value)) + { + _pressedDownByKeyboardShortcut = false; + if (!Depressed) + OnPressed(); + } + } + } + if (_pressedDownByKeyboard) + { + if (keyCode == Keys.Space) + { + _pressedDownByKeyboard = false; + if (!Depressed) + OnPressed(); + } + } + } + + /// Called when the control is pressed + /// + /// If you were to implement a button, for example, you could trigger a 'Pressed' + /// event here are call a user-provided delegate, depending on your design. + /// + protected virtual void OnPressed() + { + } + + /// Looks up the equivalent key to the gamepad button + /// + /// Gamepad button for which the equivalent key on the keyboard will be found + /// + /// The key that is equivalent to the specified gamepad button + private static Keys KeyFromButton(Buttons button) + { + switch (button) + { + case Buttons.A: + { + return Keys.A; + } + case Buttons.B: + { + return Keys.B; + } + case Buttons.Back: + { + return Keys.Back; + } + case Buttons.LeftShoulder: + { + return Keys.L; + } + case Buttons.LeftStick: + { + return Keys.LeftControl; + } + case Buttons.RightShoulder: + { + return Keys.R; + } + case Buttons.RightStick: + { + return Keys.RightControl; + } + case Buttons.Start: + { + return Keys.Enter; + } + case Buttons.X: + { + return Keys.X; + } + case Buttons.Y: + { + return Keys.Y; + } + default: + { + return Keys.None; + } + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/GuiProgressControl.cs b/Source/MonoGame.Extended.NuclexGui/Controls/GuiProgressControl.cs new file mode 100644 index 00000000..9482fefd --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/GuiProgressControl.cs @@ -0,0 +1,9 @@ +namespace MonoGame.Extended.NuclexGui.Controls +{ + /// Visual indicator for the progress of some operation + public class GuiProgressControl : GuiControl + { + /// The displayed progress in the range between 0.0 and 1.0 + public float Progress; + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/IFocusable.cs b/Source/MonoGame.Extended.NuclexGui/Controls/IFocusable.cs new file mode 100644 index 00000000..6753acfc --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/IFocusable.cs @@ -0,0 +1,18 @@ +namespace MonoGame.Extended.NuclexGui.Controls +{ + /// Interface for controls which can obtain the input focus + /// + /// Implement this interface in any control which can obtain the input focus. + /// + public interface IFocusable + { + /// Whether the control can currently obtain the input focus + /// + /// Usually returns true. For controls that can be disabled to disallow user + /// interaction, false can be returned to prevent the control from being + /// traversed when the user presses the tab key or uses the cursor / game pad + /// to select a control. + /// + bool CanGetFocus { get; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/IWritable.cs b/Source/MonoGame.Extended.NuclexGui/Controls/IWritable.cs new file mode 100644 index 00000000..397b19c0 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/IWritable.cs @@ -0,0 +1,26 @@ +namespace MonoGame.Extended.NuclexGui.Controls +{ + /// + /// Interface for controls that can be written into using the keyboard + /// + public interface IWritable : IFocusable + { + /// Title to be displayed in the on-screen keyboard + string GuideTitle { get; } + + /// Description to be displayed in the on-screen keyboard + string GuideDescription { get; } + + /// Text currently contained in the control + /// + /// Called before the on-screen keyboard is displayed to get the text currently + /// contained in the control and after the on-screen keyboard has been + /// acknowledged to assign the edited text to the control + /// + string Text { get; set; } + + /// Called when the user has entered a character + /// Character that has been entered + void OnCharacterEntered(char character); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Controls/ParentingControlCollection.cs b/Source/MonoGame.Extended.NuclexGui/Controls/ParentingControlCollection.cs new file mode 100644 index 00000000..27bd6fb1 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Controls/ParentingControlCollection.cs @@ -0,0 +1,178 @@ +using System; +using System.Collections.ObjectModel; + +namespace MonoGame.Extended.NuclexGui.Controls +{ + /// Collection of GUI controls + /// + /// This class is for internal use only. Do not expose it to the user. If it was + /// exposed, the user might decide to use it for storing his own controls, causing + /// exceptions because the collection tries to parent the controls which are already + /// belonging to another collection. + /// + internal class ParentingControlCollection : Collection + { + /// Parent control to assign to all controls in this collection. + private readonly GuiControl _parent; + + /// GUI this control is currently assigned to. Can be null. + private GuiScreen _screen; + + /// Initializes a new parenting control collection. + /// Parent control to assign to all children. + public ParentingControlCollection(GuiControl parent) + { + _parent = parent; + } + + /// Clears all elements from the collection + protected override void ClearItems() + { + for (var index = 0; index < Count; ++index) + UnassignParent(base[index]); + + base.ClearItems(); + } + + /// Inserts a new element into the collection + /// Index at which to insert the element + /// Item to be inserted + protected override void InsertItem(int index, GuiControl item) + { + EnsureIntegrity(item); + + base.InsertItem(index, item); + AssignParent(item); + } + + /// Removes an element from the collection + /// Index of the element to remove + protected override void RemoveItem(int index) + { + UnassignParent(base[index]); + base.RemoveItem(index); + } + + /// Takes over a new element that is directly assigned + /// Index of the element that was assigned + /// New item + protected override void SetItem(int index, GuiControl item) + { + EnsureIntegrity(item); + + UnassignParent(base[index]); + AssignParent(item); + } + + /// Switches the control to a specific GUI + /// Screen that owns the control from now on + internal void SetScreen(GuiScreen screen) + { + _screen = screen; + + for (var index = 0; index < Count; ++index) + base[index].SetScreen(screen); + } + + /// Moves the specified control to the start of the list. + /// Index of the control that will be moved to the start of the list. + internal void MoveToStart(int controlIndex) + { + var control = base[controlIndex]; + + // We explicitely circumvent the additional logic for adding and removing items + // in this collection since we're only relocating an item. Removal and readdition + // have no risk of causing an exception in a normal collection, otherwise the + // rollback attempt would be futile anyway since it would mean to repeat exactly + // what has caused failed: adding an item ;) + RemoveAt(controlIndex); + Insert(0, control); + } + + /// Checks whether the provided name is already taken by a control. + /// Id that will be checked. + /// True if the id is already taken; otherwise false. + internal bool IsNameTaken(string name) + { + // Empty names are an exception and will not be checked for duplicates. + if (name == null) + return false; + + // Look for any controls with the provided name. This is a stupid sequential + // search, but given the typical number of controls in a Gui and the fact + // that this operation usually only happens once, there's no point in adding + // the overhead of managing a synchronized look-up dictionary here. + for (var index = 0; index < Count; ++index) + { + if (base[index].Name == name) + return true; + } + + // If we reach this point, no control is using the specified name. + return false; + } + + /// Gives up the parentage on the item provided. + /// Item to be unparented. + private void AssignParent(GuiControl item) + { + item.SetParent(_parent); + } + + /// Sets up the parentage on the specified item. + /// Item to be parented. + private void UnassignParent(GuiControl item) + { + item.SetParent(null); + } + + /// Determines whether the provided control is a parent of this control. + /// Control to check for parentage. + /// True if the control is one of our parents; otherwise false. + /// This method takes into account all ancestors up to the tree's root. + private bool IsParent(GuiControl control) + { + var parent = _parent; + while (parent != null) + { + // Check if one of parents is control we are looking for + if (ReferenceEquals(parent, control)) + return true; + + // Walk upwards in the tree + parent = parent.Parent; + } + + // Control is not in the tree + return false; + } + + /// Ensures the integrity of the parent/child relationships. + /// Control that is to become one of our childs. + private void EnsureIntegrity(GuiControl proposedChild) + { + // The item must not have a parent (otherwise, by being added to this collection, + // it would either be contained twice in the same collection or have two parents). + if (!ReferenceEquals(proposedChild.Parent, null)) + throw new InvalidOperationException("Control already is the child of another control"); + + // The item must not become its own parent. I cannot imagine this ever happenning + // unless someone deliberately tried to crash the GUI library :) + if (ReferenceEquals(_parent, proposedChild)) + throw new InvalidOperationException("Attempt to instate control as its own parent"); + + // The item also must not be any of our parent's parents (and so on). Otherwise, + // a stack overflow is likely to occur. + if (IsParent(proposedChild)) + throw new InvalidOperationException("Attempt to instate one of the control's parents as its child"); + + // We also do not allow a child control to have the same id as an existing + // control (with the exception of an empty name) + if (IsNameTaken(proposedChild.Name)) + { + throw new InvalidOperationException( + "The name of the added control has already been taken by another child"); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/GuiManager.cs b/Source/MonoGame.Extended.NuclexGui/GuiManager.cs new file mode 100644 index 00000000..b9e6609a --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/GuiManager.cs @@ -0,0 +1,390 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.NuclexGui.Input; +using MonoGame.Extended.NuclexGui.Visuals; +using MonoGame.Extended.NuclexGui.Visuals.Flat; +using GameEventHandler = System.EventHandler; + +namespace MonoGame.Extended.NuclexGui +{ + // If an instance creates its own GUI visualizer (because the user didn't assign + // a custom one), it belongs to the instance and should be disposed. If the + // use does assign a custom visualizer, it shouldn't be disposed. + // But what if the user stores the current visualizer, then assigns a different + // one and assigns our's back? + + + public class GuiManager : IGameComponent, IUpdateable, IDrawable, IDisposable, IGuiService + { + /// Draw order rank relative to other game components + private int _drawOrder; + + /// Game service container the GUI has registered itself in + private readonly GameServiceContainer _gameServices; + + /// Graphics device servide the GUI uses + private IGraphicsDeviceService _graphicsDeviceService; + + /// Draws the GUI + private IGuiVisualizer _guiVisualizer; + + /// Captures user input for the XNA game + private IInputCapturer _inputCapturer; + + /// Input service the GUI uses + private IGuiInputService _inputService; + + /// The GUI screen representing the desktop + private GuiScreen _screen; + + /// The IGuiVisualizer under its IUpdateable interface, if implemented + private IUpdateable _updateableGuiVisualizer; + + /// The IInputCapturer under its IUpdateable interface, if implemented + private IUpdateable _updateableInputCapturer; + + /// Update order rank relative to other game components + private int _updateOrder; + + /// Whether the GUI should be drawn by Game.Draw() + private bool _visible = true; + + /// Initializes a new GUI manager using the XNA service container + /// + /// Game service container the GuiManager will register itself in and + /// to take the services it consumes from. + /// + /// The input service used by the GUI + public GuiManager(GameServiceContainer gameServices, IGuiInputService inputService) + { + _gameServices = gameServices; + _inputService = inputService; + + gameServices.AddService(typeof(IGuiService), this); + + // Do not look for the consumed services yet. XNA uses a two-stage + // initialization where in the first stage all managers register themselves + // before seeking out the services they use in the second stage, marked + // by a call to the Initialize() method. + } + + /// Initializes a new GUI manager without using the XNA service container + /// Graphics device service the GUI will be rendered with + /// Input service used to read data from the input devices + /// This constructor is provided for users of dependency injection frameworks. + public GuiManager(IGraphicsDeviceService graphicsDeviceService, IGuiInputService inputService) + { + _graphicsDeviceService = graphicsDeviceService; + _inputService = inputService; + } + + /// Initializes a new GUI manager using explicit services + /// Game service container the GuiManager will register itself in + /// Graphics device service the GUI will be rendered with + /// Input service used to read data from the input devices + /// + /// This constructor is provided for users of dependency injection frameworks + /// or if you just want to be more explicit in stating which manager consumes + /// what services. + /// + public GuiManager(GameServiceContainer gameServices, IGraphicsDeviceService graphicsDeviceService, IGuiInputService inputService) + : this(gameServices, inputService) + { + _graphicsDeviceService = graphicsDeviceService; + _inputService = inputService; + } + + /// Input capturer that collects data from the input devices + /// + /// The GuiManager will dispose its input capturer together with itself. If you + /// want to keep the input capturer, unset it before disposing the GuiManager. + /// If you want to replace the GuiManager's input capturer after it has constructed + /// the default one, you should dispose the GuiManager's default input capturer + /// after assigning your own. + /// + public IInputCapturer InputCapturer + { + get { return _inputCapturer; } + set + { + if (!ReferenceEquals(value, _inputCapturer)) + { + if (_inputCapturer != null) + _inputCapturer.InputReceiver = null; + + _inputCapturer = value; + _updateableInputCapturer = value as IUpdateable; + + if (_inputCapturer != null) + _inputCapturer.InputReceiver = _screen; + } + } + } + + /// Immediately releases all resources used the GUI manager + public void Dispose() + { + // Unregister the service if we have registered it before + if (_gameServices != null) + { + var registeredService = _gameServices.GetService(typeof(IGuiService)); + + if (ReferenceEquals(registeredService, this)) + _gameServices.RemoveService(typeof(IGuiService)); + } + + // Dispose the input capturer, if necessary + if (_inputCapturer != null) + { + var disposableInputCapturer = _inputCapturer as IDisposable; + + disposableInputCapturer?.Dispose(); + + _updateableInputCapturer = null; + _inputCapturer = null; + } + + // Dispose the GUI visualizer, if necessary + if (_guiVisualizer != null) + { + var disposableguiVisualizer = _guiVisualizer as IDisposable; + + disposableguiVisualizer?.Dispose(); + + _updateableGuiVisualizer = null; + _guiVisualizer = null; + } + } + + /// Fired when the DrawOrder property changes + public event GameEventHandler DrawOrderChanged; + + /// Fired when the Visible property changes + public event GameEventHandler VisibleChanged; + + /// Whether the GUI should be drawn during Game.Draw() + public bool Visible + { + get { return _visible; } + set + { + if (value != _visible) + { + _visible = value; + OnVisibleChanged(); + } + } + } + + /// + /// The order in which to draw this object relative to other objects. Objects + /// with a lower value are drawn first. + /// + public int DrawOrder + { + get { return _drawOrder; } + set + { + if (value != _drawOrder) + { + _drawOrder = value; + OnDrawOrderChanged(); + } + } + } + + /// Called when the drawable component needs to draw itself. + /// Provides a snapshot of the game's timing values + public void Draw(GameTime gameTime) + { + if (_guiVisualizer != null) + { + if (_screen != null) + _guiVisualizer.Draw(_screen); + } + } + + /// Handles second-stage initialization of the GUI manager + public void Initialize() + { + // Set up a default input capturer if none was assigned by the user. + // We only require an IInputService if the user doesn't use a custom input + // capturer (which could be based on any other input library) + if (_inputCapturer == null) + { + if (_inputService == null) + _inputService = GetInputService(_gameServices); + + //_inputCapturer = new Input.DefaultInputCapturer(_inputService); + _inputCapturer = new DefaultInputCapturer(_inputService); + + // If a screen was assigned to the GUI before the input capturer was + // created, then the input capturer hasn't been given the screen as its + // input sink yet. + if (_screen != null) + _inputCapturer.InputReceiver = _screen; + } + + // Set up a default GUI visualizer if none was assigned by the user. + // We only require an IGraphicsDeviceService if the user doesn't use a + // custom visualizer (which could be using any kind of rendering) + if (_guiVisualizer == null) + { + if (_graphicsDeviceService == null) + _graphicsDeviceService = GetGraphicsDeviceService(_gameServices); + + // Use a private service container. We know exactly what will be loaded from + // the content manager our default GUI visualizer creates and if the user is + // being funny, the graphics device service passed to the constructor might + // be different from the one registered in the game service container. + var services = new GameServiceContainer(); + services.AddService(typeof(IGraphicsDeviceService), _graphicsDeviceService); + + Visualizer = FlatGuiVisualizer.FromResource(services, + "MonoGame.Extended.NuclexGui.Resources.Skins.SuaveSkin.json"); + } + } + + /// Visualizer that draws the GUI onto the screen + /// + /// The GuiManager will dispose its visualizer together with itself. If you want + /// to keep the visualizer, unset it before disposing the GuiManager. If you want + /// to replace the GuiManager's visualizer after it has constructed the default + /// one, you should dispose the GuiManager's default visualizer after assigning + /// your own. + /// + public IGuiVisualizer Visualizer + { + get { return _guiVisualizer; } + set + { + _guiVisualizer = value; + _updateableGuiVisualizer = value as IUpdateable; + } + } + + /// GUI that is being rendered + /// + /// The GUI manager renders one GUI full-screen onto the primary render target + /// (the backbuffer). This property holds the GUI that is being managed by + /// the GUI manager component. You can replace it at any time, for example, + /// if the player opens or closes your ingame menu. + /// + public GuiScreen Screen + { + get { return _screen; } + set + { + _screen = value; + + // Someone could assign the screen before the component is initialized. + // If that happens, do nothing here, the Initialize() method will take care + // of assigning the screen to the input capturer once it is called. + if (_inputCapturer != null) + _inputCapturer.InputReceiver = _screen; + } + } + + /// Fired when the UpdateOrder property changes + public event GameEventHandler UpdateOrderChanged; + + /// Fired when the enabled property changes, which is never + event GameEventHandler IUpdateable.EnabledChanged + { + add { } + remove { } + } + + /// Whether the component should be updated during Game.Update() + bool IUpdateable.Enabled => true; + + /// + /// Indicates when the game component should be updated relative to other game + /// components. Lower values are updated first. + /// + public int UpdateOrder + { + get { return _updateOrder; } + set + { + if (value != _updateOrder) + { + _updateOrder = value; + OnUpdateOrderChanged(); + } + } + } + + /// Called when the component needs to update its state. + /// Provides a snapshot of the Game's timing values + public void Update(GameTime gameTime) + { + _updateableInputCapturer?.Update(gameTime); + _updateableGuiVisualizer?.Update(gameTime); + } + + /// Fires the UpdateOrderChanged event + protected void OnUpdateOrderChanged() + { + UpdateOrderChanged?.Invoke(this, EventArgs.Empty); + } + + /// Fires the DrawOrderChanged event + protected void OnDrawOrderChanged() + { + DrawOrderChanged?.Invoke(this, EventArgs.Empty); + } + + /// Fires the VisibleChanged event + protected void OnVisibleChanged() + { + VisibleChanged?.Invoke(this, EventArgs.Empty); + } + + /// Retrieves the input service from a service provider + /// Service provider the input service is retrieved from + /// The retrieved input service + private static IGuiInputService GetInputService(IServiceProvider serviceProvider) + { + var inputService = (IGuiInputService) serviceProvider.GetService(typeof(IGuiInputService)); + + if (inputService == null) + { + throw new InvalidOperationException( + "Using the GUI with the default input capturer requires the IInputService. " + + "Please either add the IInputService to Game.Services by using the " + + "Nuclex.Input.InputManager in your game or provide a custom IInputCapturer " + + "implementation for the GUI and assign it before GuiManager.Initialize() " + + "is called." + ); + } + + return inputService; + } + + /// Retrieves the graphics device service from a service provider + /// Service provider the graphics device service is retrieved from + /// The retrieved graphics device service + private static IGraphicsDeviceService GetGraphicsDeviceService( + IServiceProvider serviceProvider + ) + { + var graphicsDeviceService = + (IGraphicsDeviceService) serviceProvider.GetService(typeof(IGraphicsDeviceService)); + + if (graphicsDeviceService == null) + { + throw new InvalidOperationException( + "Using the GUI with the default visualizer requires the IGraphicsDeviceService. " + + "Please either add an IGraphicsDeviceService to Game.Services by using " + + "XNA's GraphicsDeviceManager in your game or provide a custom " + + "IGuiVisualizer implementation for the GUI and assign it before " + + "GuiManager.Initialize() is called." + ); + } + + return graphicsDeviceService; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/GuiScreen.cs b/Source/MonoGame.Extended.NuclexGui/GuiScreen.cs new file mode 100644 index 00000000..fb41a001 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/GuiScreen.cs @@ -0,0 +1,614 @@ +using System; +using System.Collections; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended.Input.InputListeners; +using MonoGame.Extended.NuclexGui.Controls; +using MonoGame.Extended.NuclexGui.Input; +using MonoGame.Extended.NuclexGui.Support; + +namespace MonoGame.Extended.NuclexGui +{ + /// Manages the controls and their state on a GUI screen + /// + /// This class manages the global state of a distinct user interface. Unlike your + /// typical GUI library, the Nuclex.UserInterface library can handle any number of + /// simultaneously active user interfaces at the same time, making the library + /// suitable for usage on virtual ingame computers and multi-client environments + /// such as split-screen games or switchable graphical terminals. + /// + public class GuiScreen : IInputReceiver + { + /// Highest value in the Keys enumeration + private static readonly int _maxKeyboardKey = + (int) EnumHelper.GetHighestValue(); + + /// Control responsible for hosting the GUI's top-level controls + private readonly GuiDesktopControl _desktopControl; + + /// Child that currently has the input focus + /// + /// If this field is non-null, all keyboard input sent to the Gui is handed + /// over to the focused control. Otherwise, keyboard input is discarded. + /// + private readonly Support.WeakReference _focusedControl; + + /// Keys on the keyboard the user is currently holding down + private readonly BitArray _heldKeys; + + /// Control the user has activated through one of the input devices + private GuiControl _activatedControl; + + /// Buttons on the game pad the user is currently holding down + private Buttons _heldButtons; + + /// Number of keys being held down on the keyboard + private int _heldKeyCount; + + /// Mouse buttons currently being held down + private MouseButton _heldMouseButtons; + + /// Size of the GUI area in world units or pixels + private Vector2 _size; + + /// Initializes a new GUI + public GuiScreen() : this(0, 0) + { + } + + /// Initializes a new GUI + /// Width of the area the GUI can occupy + /// Height of the area the GUI can occupy + /// + /// Width and height should reflect the entire drawable area of your GUI. If you + /// want to limit the region which the GUI is allowed to use (eg. to only use the + /// safe area of a TV) please resize the desktop control accordingly! + /// + public GuiScreen(float width, float height) + { + Width = width; + Height = height; + + _heldKeys = new BitArray(_maxKeyboardKey + 1); + _heldButtons = 0; + + // By default, the desktop control will cover the whole drawing area + _desktopControl = new GuiDesktopControl + { + Bounds = new UniRectangle(new UniVector(0, 0), new UniVector(1, 1)) + }; + + _desktopControl.SetScreen(this); + + _focusedControl = new Support.WeakReference(null); + } + + /// Width of the screen in pixels + public float Width + { + get { return _size.X; } + set { _size.X = value; } + } + + /// Height of the screen in pixels + public float Height + { + get { return _size.Y; } + set { _size.Y = value; } + } + + /// Control responsible for hosting the GUI's top-level controls + public GuiControl Desktop => _desktopControl; + + /// + /// Whether any keys, mouse buttons or game pad buttons are beind held pressed + /// + private bool AnyKeysOrButtonsPressed => (_heldMouseButtons != 0) || + (_heldKeyCount > 0) || + (_heldButtons != 0); + + /// Whether the GUI has currently captured the input devices + /// + /// + /// When you mix GUIs and gameplay (for example, in a strategy game where the GUI + /// manages the build menu and the remainder of the screen belongs to the game), + /// it is important to keep control of who currently owns the input devices. + /// + /// + /// Assume the player is drawing a selection rectangle around some units using + /// the mouse. He will press the mouse button outside any GUI elements, keep + /// holding it down and possibly drag over the GUI. Until the player lets go + /// of the mouse button, input exclusively belongs to the game. The same goes + /// vice versa, of course. + /// + /// + /// This property tells whether the GUI currently thinks that all input belongs + /// to it. If it is true, the game should not process any input. The GUI will + /// implement the input model as described here and respect the game's ownership + /// of the input devices if a mouse button is pressed outside of the GUI. To + /// correctly handle input device ownership, send all input to the GUI + /// regardless of this property's value, then check this property and if it + /// returns false let your game process the input. + /// + /// + public bool IsInputCaptured => _desktopControl.IsInputCaptured; + + /// True if the mouse is currently hovering over any GUI elements + /// + /// Useful if you mix gameplay with a GUI and use different mouse cursors + /// depending on the location of the mouse. As long as input is not captured + /// (see ) you can use this property to know + /// whether you should use the standard GUI mouse cursor or let your game + /// decide which cursor to use. + /// + public bool IsMouseOverGui => _desktopControl.IsMouseOverGui; + + /// Child control that currently has the input focus + public GuiControl FocusedControl + { + get + { + var current = _focusedControl.Target; + if ((current != null) && ReferenceEquals(current.Screen, this)) + return current; + return null; + } + set + { + var current = _focusedControl.Target; + if (!ReferenceEquals(value, current)) + { + _focusedControl.Target = value; + OnFocusChanged(value); + } + } + } + + /// Injects a command into the processor + /// Input command that will be injected + public void InjectCommand(Command command) + { + switch (command) + { + // Accept or cancel the current control + case Command.Accept: + case Command.Cancel: + { + var focusedControl = FocusedControl; + if (focusedControl == null) + return; // Also catches when focusedControl is not part of the tree + + focusedControl.ProcessCommand(command); + + break; + } + + // Change focus to another control + case Command.SelectPrevious: + case Command.SelectNext: + { + break; + } + + // Control specific. Changes focus if unhandled. + case Command.Up: + case Command.Down: + case Command.Left: + case Command.Right: + { + var focusedControl = FocusedControl; + if (focusedControl == null) + return; // Also catches when focusedControl is not part of the tree + + // First send the command to the focused control. If the control handles + // the command, there's nothing for us to do. Otherwise, use the directional + // commands for focus switching. + if (focusedControl.ProcessCommand(command)) + return; + + // These will be determined in the following code block + var nearestDistance = float.NaN; + GuiControl nearestControl = null; + { + // Determine the center of the focused control + var parentBounds = focusedControl.Parent.GetAbsoluteBounds(); + var focusedBounds = focusedControl.Bounds.ToOffset( + parentBounds.Width, parentBounds.Height + ); + + // Search all siblings of the focused control for the nearest control in the + // direction the command asks to move into + var siblings = focusedControl.Parent.Children; + foreach (var sibling in siblings) + { + // Only consider this sibling if it's focusable + if (!ReferenceEquals(sibling, focusedControl) && CanControlGetFocus(sibling)) + { + var siblingBounds = sibling.Bounds.ToOffset( + parentBounds.Width, parentBounds.Height + ); + + // Calculate the distance the control has in the direction focus is being + // changed to. If the control doesn't lie in that direction, NaN will + // be returned + var distance = GetDirectionalDistance( + ref focusedBounds, ref siblingBounds, command + ); + if (float.IsNaN(nearestDistance) || (distance < nearestDistance)) + { + nearestControl = sibling; + nearestDistance = distance; + } + } + } + } // beauty scope + + // Search completed, if we found a candidate, change focus to it + if (!float.IsNaN(nearestDistance)) + FocusedControl = nearestControl; + + break; + } + } + } + + /// Called when a key on the keyboard has been pressed down + /// Code of the key that was pressed + public void InjectKeyPress(Keys keyCode) + { + var repetition = _heldKeys.Get((int) keyCode); + + // If a control is activated, it will receive any input notifications + if (_activatedControl != null) + { + _activatedControl.ProcessKeyPress(keyCode, repetition); + if (!repetition) + { + ++_heldKeyCount; + _heldKeys.Set((int) keyCode, true); + } + return; + } + + // No control is activated, try the focused control before searching + // the entire tree for a responder. + var focusedControl = _focusedControl.Target; + if (focusedControl != null) + { + if (focusedControl.ProcessKeyPress(keyCode, false)) + { + _activatedControl = focusedControl; + if (!repetition) + { + ++_heldKeyCount; + _heldKeys.Set((int) keyCode, true); + } + return; + } + } + + // Focused control didn't process the notification, now let the desktop + // control traverse the entire control tree is earch for a handler. + if (_desktopControl.ProcessKeyPress(keyCode, false)) + { + _activatedControl = _desktopControl; + if (!repetition) + { + ++_heldKeyCount; + _heldKeys.Set((int) keyCode, true); + } + } + else + { + switch (keyCode) + { + case Keys.Up: + { + InjectCommand(Command.Up); + break; + } + case Keys.Down: + { + InjectCommand(Command.Down); + break; + } + case Keys.Left: + { + InjectCommand(Command.Left); + break; + } + case Keys.Right: + { + InjectCommand(Command.Right); + break; + } + case Keys.Enter: + { + InjectCommand(Command.Accept); + break; + } + case Keys.Escape: + { + InjectCommand(Command.Cancel); + break; + } + } + } + } + + /// Called when a key on the keyboard has been released again + /// Code of the key that was released + public void InjectKeyRelease(Keys keyCode) + { + if (!_heldKeys.Get((int) keyCode)) + return; + --_heldKeyCount; + _heldKeys.Set((int) keyCode, false); + + // If a control signed responsible for the earlier key press, it will now + // receive the release notification. + _activatedControl?.ProcessKeyRelease(keyCode); + + // Reset the activated control if the user has released all buttons on all + // input devices. + if (!AnyKeysOrButtonsPressed) + _activatedControl = null; + } + + /// Handle user text input by a physical or virtual keyboard + /// Character that has been entered + public void InjectCharacter(char character) + { + // Send the text to the currently focused control in the GUI + var focusedControl = _focusedControl.Target; + var writable = focusedControl as IWritable; + writable?.OnCharacterEntered(character); + } + + /// Called when a button on the gamepad has been pressed + /// Button that has been pressed + public void InjectButtonPress(Buttons button) + { + var newHeldButtons = _heldButtons | button; + if (newHeldButtons == _heldButtons) + return; + _heldButtons = newHeldButtons; + + // If a control is activated, it will receive any input notifications + if (_activatedControl != null) + { + _activatedControl.ProcessButtonPress(button); + return; + } + + // No control is activated, try the focused control before searching + // the entire tree for a responder. + var focusedControl = _focusedControl.Target; + if (focusedControl != null) + { + if (focusedControl.ProcessButtonPress(button)) + { + _activatedControl = focusedControl; + return; + } + } + + // Focused control didn't process the notification, now let the desktop + // control traverse the entire control tree is earch for a handler. + if (_desktopControl.ProcessButtonPress(button)) + _activatedControl = _desktopControl; + } + + /// Called when a button on the gamepad has been released + /// Button that has been released + public void InjectButtonRelease(Buttons button) + { + if ((_heldButtons & button) == 0) + return; + _heldButtons &= ~button; + + // If a control signed responsible for the earlier button press, it will now + // receive the release notification. + _activatedControl?.ProcessButtonRelease(button); + + // Reset the activated control if the user has released all buttons on all + // input devices. + if (!AnyKeysOrButtonsPressed) + _activatedControl = null; + } + + /// Injects a mouse position update into the GUI + /// X coordinate of the mouse cursor within the screen + /// Y coordinate of the mouse cursor within the screen + public void InjectMouseMove(float x, float y) + { + _desktopControl.ProcessMouseMove(_size.X, _size.Y, x, y); + } + + /// Called when a mouse button has been pressed down + /// Index of the button that has been pressed + public void InjectMousePress(MouseButton button) + { + _heldMouseButtons |= button; + + // If a control is activated, it will receive any input notifications + if (_activatedControl != null) + { + _activatedControl.ProcessMousePress(button); + return; + } + + // No control was activated, so the desktop control becomes activated and + // is responsible for routing the input to the control under the mouse. + _activatedControl = _desktopControl; + _desktopControl.ProcessMousePress(button); + } + + /// Called when a mouse button has been released again + /// Index of the button that has been released + public void InjectMouseRelease(MouseButton button) + { + _heldMouseButtons &= ~button; + + // If a control signed responsible for the earlier mouse press, it will now + // receive the release notification. + _activatedControl?.ProcessMouseRelease(button); + + // Reset the activated control if the user has released all buttons on all + // input devices. + if (!AnyKeysOrButtonsPressed) + _activatedControl = null; + } + + /// Called when the mouse wheel has been rotated + /// Number of ticks that the mouse wheel has been rotated + public void InjectMouseWheel(float ticks) + { + if (_activatedControl != null) + _activatedControl.ProcessMouseWheel(ticks); + else + _desktopControl.ProcessMouseWheel(ticks); + } + + /// Triggered when the control in focus changes + public event EventHandler FocusChanged; + + /// Triggers the FocusChanged event + /// Control that has gotten the input focus + private void OnFocusChanged(GuiControl focusedControl) + { + FocusChanged?.Invoke(this, new ControlEventArgs(focusedControl)); + } + + /// + /// Determines the distance of one rectangle to the other, also taking direction + /// into account + /// + /// Boundaries of the base rectangle + /// Boundaries of the other rectangle + /// Direction into which distance will be determined + /// + /// The direction of the other rectangle of NaN if it didn't lie in that direction + /// + private static float GetDirectionalDistance( + ref RectangleF ownBounds, ref RectangleF otherBounds, Command direction + ) + { + float closestPointX, closestPointY; + float distance; + + var isVertical = + (direction == Command.Up) || + (direction == Command.Down); + + if (isVertical) + { + var ownCenterX = ownBounds.X + ownBounds.Width/2.0f; + + // Take an imaginary line through the other control's center, perpendicular + // to the specified direction. Then locate the closest point on that line + // to our own center. + closestPointX = Math.Min(Math.Max(ownCenterX, otherBounds.Left), otherBounds.Right); + closestPointY = otherBounds.Y + otherBounds.Height/2.0f; + + // Find out whether we need to check the diagonal quadrant boundary + var leavesLeft = closestPointX < ownBounds.Left; + var leavesRight = closestPointX > ownBounds.Right; + + // + float sideY; + if (direction == Command.Up) + { + sideY = ownBounds.Top; + if ((closestPointY > sideY) && (leavesLeft || leavesRight)) + return float.NaN; + distance = sideY - closestPointY; + } + else + { + sideY = ownBounds.Bottom; + if ((closestPointY < sideY) && (leavesLeft || leavesRight)) + return float.NaN; + distance = closestPointY - sideY; + } + + var distanceY = Math.Abs(sideY - closestPointY); + if (leavesLeft) + { + var distanceX = Math.Abs(ownBounds.Left - closestPointX); + if (distanceX > distanceY) + return float.NaN; + } + else + { + if (leavesRight) + { + var distanceX = Math.Abs(closestPointX - ownBounds.Right); + if (distanceX > distanceY) + return float.NaN; + } + } + } + else + { + var ownCenterY = ownBounds.Y + ownBounds.Height/2.0f; + + // Take an imaginary line through the other control's center, perpendicular + // to the specified direction. Then locate the closest point on that line + // to our own center. + closestPointX = otherBounds.X + otherBounds.Width/2.0f; + closestPointY = Math.Min(Math.Max(ownCenterY, otherBounds.Top), otherBounds.Bottom); + + // Find out whether we need to check the diagonal quadrant boundary + var leavesTop = closestPointY < ownBounds.Top; + var leavesBottom = closestPointY > ownBounds.Bottom; + + float sideX; + if (direction == Command.Left) + { + sideX = ownBounds.Left; + if ((closestPointX > sideX) && (leavesTop || leavesBottom)) + return float.NaN; + distance = sideX - closestPointX; + } + else + { + sideX = ownBounds.Right; + if ((closestPointX < sideX) && (leavesTop || leavesBottom)) + return float.NaN; + distance = closestPointX - sideX; + } + + var distanceX = Math.Abs(sideX - closestPointX); + if (leavesTop) + { + var distanceY = Math.Abs(ownBounds.Top - closestPointY); + if (distanceY > distanceX) + return float.NaN; + } + else + { + if (leavesBottom) + { + var distanceY = Math.Abs(closestPointY - ownBounds.Bottom); + if (distanceY > distanceX) + return float.NaN; + } + } + } + + return distance < 0.0f ? float.NaN : distance; + } + + /// Determines whether a control can obtain the input focus + /// Control that will be checked for focusability + /// True if the specified control can obtain the input focus + private static bool CanControlGetFocus(GuiControl control) + { + var focusableControl = control as IFocusable; + if (focusableControl != null) + return focusableControl.CanGetFocus; + return false; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/IGuiInputService.cs b/Source/MonoGame.Extended.NuclexGui/IGuiInputService.cs new file mode 100644 index 00000000..47cd999c --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/IGuiInputService.cs @@ -0,0 +1,28 @@ +using MonoGame.Extended.Input.InputListeners; + +namespace MonoGame.Extended.NuclexGui +{ + public interface IGuiInputService + { + KeyboardListener KeyboardListener { get; } + MouseListener MouseListener { get; } + GamePadListener GamePadListener { get; } + TouchListener TouchListener { get; } + } + + public class GuiInputService : IGuiInputService + { + public GuiInputService(InputListenerComponent inputListener) + { + inputListener.Listeners.Add(KeyboardListener = new KeyboardListener()); + inputListener.Listeners.Add(MouseListener = new MouseListener()); + inputListener.Listeners.Add(GamePadListener = new GamePadListener()); + inputListener.Listeners.Add(TouchListener = new TouchListener()); + } + + public KeyboardListener KeyboardListener { get; } + public MouseListener MouseListener { get; } + public GamePadListener GamePadListener { get; } + public TouchListener TouchListener { get; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/IGuiService.cs b/Source/MonoGame.Extended.NuclexGui/IGuiService.cs new file mode 100644 index 00000000..7c84d2a3 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/IGuiService.cs @@ -0,0 +1,22 @@ +using MonoGame.Extended.NuclexGui.Visuals; + +namespace MonoGame.Extended.NuclexGui +{ + /// Game-wide interface for the GUI manager component + public interface IGuiService + { + /// GUI that is being rendered + /// + /// The GUI manager renders one GUI full-screen onto the primary render target + /// (the backbuffer). This property holds the GUI that is being managed by + /// the GUI manager component. You can replace it at any time, for example, + /// if the player opens or closes your ingame menu. + /// + GuiScreen Screen { get; set; } + + /// + /// Responsible for creating a visual representation of the GUI on the screen + /// + IGuiVisualizer Visualizer { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Input/Command.cs b/Source/MonoGame.Extended.NuclexGui/Input/Command.cs new file mode 100644 index 00000000..982f8bad --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Input/Command.cs @@ -0,0 +1,44 @@ +namespace MonoGame.Extended.NuclexGui.Input +{ + /// Input commands that can be sent to a control + /// + /// + /// The Nuclex GUI library is designed to work even when none of the usual + /// input devices are available. In this case, the entire GUI is controlled + /// through command keys, which might for example directly be linked to + /// the buttons of a gamepad. + /// + /// + /// It is, of course, still the responsibility of the developer to design + /// GUIs in a simple and easy to navigate style. When building GUIs that + /// are intended be used without a mouse, it is best not to use complex + /// controls like lists or text input boxes. + /// + /// + public enum Command + { + /// Accept the current selection (Ok button, Enter key) + Accept, + + /// Cancel the current selection (Cancel button, Escape key) + Cancel, + + /// Advance focus to the next control (Tab key) + SelectNext, + + /// Advance focus to the previous control (Shift+Tab key) + SelectPrevious, + + /// Go up or focus control above (Cursor Up key) + Up, + + /// Go down or focus control below (Cursor Down key) + Down, + + /// Go left or focus control left (Cursor Left key) + Left, + + /// Go right or focus control right (Cursor Right key) + Right + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Input/DefaultInputCapturer.cs b/Source/MonoGame.Extended.NuclexGui/Input/DefaultInputCapturer.cs new file mode 100644 index 00000000..b0b2a846 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Input/DefaultInputCapturer.cs @@ -0,0 +1,277 @@ +using System; +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended.Input.InputListeners; + +namespace MonoGame.Extended.NuclexGui.Input +{ + public class DefaultInputCapturer : IInputCapturer, IDisposable + { + private bool _disposedValue; // To detect redundant calls + private readonly GamePadListener _gamePadListener; + + /// Current receiver of input events + /// + /// Always valid. If no input receiver is assigned, this field will be set + /// to a dummy receiver. + /// + private IInputReceiver _inputReceiver; + + /// Input service the capturer is currently subscribed to + private IGuiInputService _inputService; + + private readonly KeyboardListener _keyboardListener; + private readonly MouseListener _mouseListener; + + /// Initializes a new input capturer, taking the input service from a service provider + /// Service provider the input capturer will take the input service from + public DefaultInputCapturer(IServiceProvider serviceProvider) : this(GetInputService(serviceProvider)) + { + } + + /// Initializes a new input capturer using the specified input service + /// Input service the capturer will subscribe to + public DefaultInputCapturer(IGuiInputService inputService) + { + _inputService = inputService; + _inputReceiver = new DummyInputReceiver(); + + _keyboardListener = inputService.KeyboardListener; + _mouseListener = inputService.MouseListener; + _gamePadListener = inputService.GamePadListener; + + SubscribeInputDevices(); + } + + // ~MainInputCapturer() { + // // Do not change this code. Put cleanup code in Dispose(bool disposing) above. + // Dispose(false); + // } + + // This code added to correctly implement the disposable pattern. + public void Dispose() + { + // Do not change this code. Put cleanup code in Dispose(bool disposing) above. + Dispose(true); + // GC.SuppressFinalize(this); + } + + /// Input receiver any captured input will be sent to + public IInputReceiver InputReceiver + { + get + { + if (ReferenceEquals(_inputReceiver, DummyInputReceiver.Default)) + return null; + return _inputReceiver; + } + set + { + if (value == null) + _inputReceiver = DummyInputReceiver.Default; + else + _inputReceiver = value; + } + } + + protected virtual void Dispose(bool disposing) + { + if (!_disposedValue) + { + if (disposing) + { + if (_inputService != null) + { + UnsubscribeInputDevices(); + _inputService = null; + } + } + + _disposedValue = true; + } + } + + private void SubscribeInputDevices() + { + _keyboardListener.KeyPressed += KeyboardListener_KeyPressed; + _keyboardListener.KeyReleased += KeyboardListener_KeyReleased; + _keyboardListener.KeyTyped += KeyboardListener_KeyTyped; + + _mouseListener.MouseDown += MouseListener_MouseDown; + _mouseListener.MouseUp += MouseListener_MouseUp; + _mouseListener.MouseMoved += MouseListener_MouseMoved; + _mouseListener.MouseWheelMoved += MouseListener_MouseWheelMoved; + + _gamePadListener.ButtonDown += GamePadListener_ButtonDown; + _gamePadListener.ButtonUp += GamePadListener_ButtonUp; + } + + private void UnsubscribeInputDevices() + { + _keyboardListener.KeyPressed -= KeyboardListener_KeyPressed; + _keyboardListener.KeyReleased -= KeyboardListener_KeyReleased; + _keyboardListener.KeyTyped -= KeyboardListener_KeyTyped; + + _mouseListener.MouseDown -= MouseListener_MouseDown; + _mouseListener.MouseUp -= MouseListener_MouseUp; + _mouseListener.MouseMoved -= MouseListener_MouseMoved; + _mouseListener.MouseWheelMoved -= MouseListener_MouseWheelMoved; + + _gamePadListener.ButtonDown -= GamePadListener_ButtonDown; + _gamePadListener.ButtonUp -= GamePadListener_ButtonUp; + } + + private void KeyboardListener_KeyPressed(object sender, KeyboardEventArgs e) + { + _inputReceiver.InjectKeyPress(e.Key); + } + + private void KeyboardListener_KeyReleased(object sender, KeyboardEventArgs e) + { + _inputReceiver.InjectKeyRelease(e.Key); + } + + private void KeyboardListener_KeyTyped(object sender, KeyboardEventArgs e) + { + _inputReceiver.InjectCharacter(e.Character.GetValueOrDefault()); + } + + private void MouseListener_MouseDown(object sender, MouseEventArgs e) + { + _inputReceiver.InjectMousePress(e.Button); + } + + private void MouseListener_MouseUp(object sender, MouseEventArgs e) + { + _inputReceiver.InjectMouseRelease(e.Button); + } + + private void MouseListener_MouseMoved(object sender, MouseEventArgs e) + { + _inputReceiver.InjectMouseMove(e.Position.X, e.Position.Y); + } + + private void MouseListener_MouseWheelMoved(object sender, MouseEventArgs e) + { + _inputReceiver.InjectMouseWheel(e.ScrollWheelDelta); + } + + private void GamePadListener_ButtonDown(object sender, GamePadEventArgs e) + { + if ((e.Button & Buttons.DPadUp) != 0) + _inputReceiver.InjectCommand(Command.Up); + else + { + if ((e.Button & Buttons.DPadDown) != 0) + _inputReceiver.InjectCommand(Command.Down); + else + { + if ((e.Button & Buttons.DPadLeft) != 0) + _inputReceiver.InjectCommand(Command.Left); + else + { + if ((e.Button & Buttons.DPadRight) != 0) + _inputReceiver.InjectCommand(Command.Right); + else + _inputReceiver.InjectButtonPress(e.Button); + } + } + } + } + + private void GamePadListener_ButtonUp(object sender, GamePadEventArgs e) + { + _inputReceiver.InjectButtonRelease(e.Button); + } + + /// Retrieves the input service from a service provider + /// + /// Service provider the service is taken from + /// + /// The input service stored in the service provider + private static IGuiInputService GetInputService(IServiceProvider serviceProvider) + { + var inputService = (IGuiInputService) serviceProvider.GetService(typeof(IGuiInputService)); + + if (inputService == null) + { + throw new InvalidOperationException( + "Using the GUI with the DefaultInputCapturer requires the IInputService. " + + "Please either add the IInputService to Game.Services by using the " + + "Nuclex.Input.InputManager in your game or provide a custom IInputCapturer " + + "implementation for the GUI and assign it before GuiManager.Initialize() " + + "is called." + ); + } + + return inputService; + } + + /// Dummy receiver for input events + private class DummyInputReceiver : IInputReceiver + { + /// Default instance of the dummy receiver + public static readonly DummyInputReceiver Default = new DummyInputReceiver(); + + /// Injects an input command into the input receiver + /// Input command to be injected + public void InjectCommand(Command command) + { + } + + /// Called when a button on the gamepad has been pressed + /// Button that has been pressed + public void InjectButtonPress(Buttons button) + { + } + + /// Called when a button on the gamepad has been released + /// Button that has been released + public void InjectButtonRelease(Buttons button) + { + } + + /// Injects a mouse position update into the receiver + /// New X coordinate of the mouse cursor on the screen + /// New Y coordinate of the mouse cursor on the screen + public void InjectMouseMove(float x, float y) + { + } + + /// Called when a mouse button has been pressed down + /// Index of the button that has been pressed + public void InjectMousePress(MouseButton button) + { + } + + /// Called when a mouse button has been released again + /// Index of the button that has been released + public void InjectMouseRelease(MouseButton button) + { + } + + /// Called when the mouse wheel has been rotated + /// Number of ticks that the mouse wheel has been rotated + public void InjectMouseWheel(float ticks) + { + } + + /// Called when a key on the keyboard has been pressed down + /// Code of the key that was pressed + public void InjectKeyPress(Keys keyCode) + { + } + + /// Called when a key on the keyboard has been released again + /// Code of the key that was released + public void InjectKeyRelease(Keys keyCode) + { + } + + /// Handle user text input by a physical or virtual keyboard + /// Character that has been entered + public void InjectCharacter(char character) + { + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Input/IInputCapturer.cs b/Source/MonoGame.Extended.NuclexGui/Input/IInputCapturer.cs new file mode 100644 index 00000000..3e7a476f --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Input/IInputCapturer.cs @@ -0,0 +1,12 @@ +namespace MonoGame.Extended.NuclexGui.Input +{ + /// + /// Interface for input capturers that monitor user input and forward it to + /// a freely settable input receiver + /// + public interface IInputCapturer + { + /// Input receiver any captured input will be sent to + IInputReceiver InputReceiver { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Input/IInputReceiver.cs b/Source/MonoGame.Extended.NuclexGui/Input/IInputReceiver.cs new file mode 100644 index 00000000..51188d22 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Input/IInputReceiver.cs @@ -0,0 +1,82 @@ +using Microsoft.Xna.Framework.Input; +using MonoGame.Extended.Input.InputListeners; + +namespace MonoGame.Extended.NuclexGui.Input +{ + /// Interface for classes that can process user input + /// + /// This interface is implemented by any class that can process user input. + /// Normally, user input is directly fed into the class + /// which manages the global state of an isolated GUI system. It is also possible, + /// though not recommended, to use this interface for sending input directly + /// to a control, for example, to simulate text input for an input box. + /// + public interface IInputReceiver + { + /// Injects an input command into the input receiver + /// Input command to be injected + /// + /// + /// If the GUI is run without the usual GUI input methods (eg. when a GUI is + /// displayed on a gaming console), this is the sole way to feed input to + /// the controls. + /// + /// + /// By default, normal key presses will generate a command in addition to the + /// KeyPress itself, so unless a control does something very special, it + /// should respond to this method only and leave the KeyPress method alone ;) + /// + /// + void InjectCommand(Command command); + + /// Called when a button on the gamepad has been pressed + /// Button that has been pressed + void InjectButtonPress(Buttons button); + + /// Called when a button on the gamepad has been released + /// Button that has been released + void InjectButtonRelease(Buttons button); + + /// Injects a mouse position update into the receiver + /// New X coordinate of the mouse cursor on the screen + /// New Y coordinate of the mouse cursor on the screen + /// + /// When the mouse leaves the valid region (eg. if the game runs in windowed mode + /// and the mouse cursor is moved outside of the window), a final mouse move + /// notification is generated with the coordinates -1, -1 + /// + void InjectMouseMove(float x, float y); + + /// Called when a mouse button has been pressed down + /// Index of the button that has been pressed + void InjectMousePress(MouseButton button); + + /// Called when a mouse button has been released again + /// Index of the button that has been released + void InjectMouseRelease(MouseButton button); + + /// Called when the mouse wheel has been rotated + /// Number of ticks that the mouse wheel has been rotated + void InjectMouseWheel(float ticks); + + /// Called when a key on the keyboard has been pressed down + /// Code of the key that was pressed + /// + /// Only handle this if you need it for some special purpose. For standard commands + /// like confirmation and cancellation, simply respond to InjectCommand() + /// + void InjectKeyPress(Keys keyCode); + + /// Called when a key on the keyboard has been released again + /// Code of the key that was released + /// + /// Only handle this if you need it for some special purpose. For standard commands + /// like confirmation and cancellation, simply respond to InjectCommand() + /// + void InjectKeyRelease(Keys keyCode); + + /// Handle user text input by a physical or virtual keyboard + /// Character that has been entered + void InjectCharacter(char character); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/MonoGame.Extended.NuclexGui.csproj b/Source/MonoGame.Extended.NuclexGui/MonoGame.Extended.NuclexGui.csproj new file mode 100644 index 00000000..17e5a69d --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/MonoGame.Extended.NuclexGui.csproj @@ -0,0 +1,138 @@ + + + + + 10.0 + Debug + AnyCPU + {D8BC4F21-E71D-46CE-B6D3-259F1E0DFABA} + Library + MonoGame.Extended.NuclexGui + MonoGame.Extended.NuclexGui + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile111 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + 6 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + + + PreserveNewest + + + + + PreserveNewest + + + + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll + + + ..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll + + + + + + + + {49c87598-994c-49b5-bbb3-7ffc342635d3} + MonoGame.Extended.Input + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.NuclexGui/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..9095fbf6 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Properties/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System.Resources; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.NuclexGui")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.NuclexGui")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.NuclexGui/Resources/Skins/DefaultFont.xnb b/Source/MonoGame.Extended.NuclexGui/Resources/Skins/DefaultFont.xnb new file mode 100644 index 0000000000000000000000000000000000000000..6d7551b27adf5c383d44b913f7d0ef9844efb326 GIT binary patch literal 21525 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 methods for enumerations + public static class EnumHelper + { + /// Returns the highest value encountered in an enumeration + /// + /// Enumeration of which the highest value will be returned + /// + /// The highest value in the enumeration + public static T GetHighestValue() where T : IComparable + { + var values = GetValues(); + + // If the enumeration is empty, return nothing + if (values.Length == 0) + return default(T); + + // Look for the highest value in the enumeration. We initialize the highest value + // to the first enumeration value so we don't have to use some arbitrary starting + // value which might actually appear in the enumeration. + var highestValue = values[0]; + for (var index = 1; index < values.Length; ++index) + { + if (values[index].CompareTo(highestValue) > 0) + highestValue = values[index]; + } + + return highestValue; + } + + /// Returns the lowest value encountered in an enumeration + /// + /// Enumeration of which the lowest value will be returned + /// + /// The lowest value in the enumeration + public static T GetLowestValue() where T : IComparable + { + var values = GetValues(); + + // If the enumeration is empty, return nothing + if (values.Length == 0) + return default(T); + + // Look for the lowest value in the enumeration. We initialize the lowest value + // to the first enumeration value so we don't have to use some arbitrary starting + // value which might actually appear in the enumeration. + var lowestValue = values[0]; + for (var index = 1; index < values.Length; ++index) + { + if (values[index].CompareTo(lowestValue) < 0) + lowestValue = values[index]; + } + + return lowestValue; + } + + /// Retrieves a list of all values contained in an enumeration + /// + /// Type of the enumeration whose values will be returned + /// + /// All values contained in the specified enumeration + /// + /// This method produces collectable garbage so it's best to only call it once + /// and cache the result. + /// + public static T[] GetValues() + { + return (T[]) Enum.GetValues(typeof(T)); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Support/WeakReference.cs b/Source/MonoGame.Extended.NuclexGui/Support/WeakReference.cs new file mode 100644 index 00000000..2b81c0a7 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Support/WeakReference.cs @@ -0,0 +1,70 @@ +using System; + +namespace MonoGame.Extended.NuclexGui.Support +{ + /// + /// Type-safe weak reference, referencing an object while still allowing + /// that object to be garbage collected. + /// + public class WeakReference : WeakReference + where TReferencedType : class + { + /// + /// Initializes a new instance of the WeakReference class, referencing + /// the specified object. + /// + /// The object to track or null. + public WeakReference(TReferencedType target) : + base(target) + { + } + + /// + /// Initializes a new instance of the WeakReference class, referencing + /// the specified object optionally using resurrection tracking. + /// + /// An object to track. + /// + /// Indicates when to stop tracking the object. If true, the object is tracked + /// after finalization; if false, the object is only tracked until finalization. + /// + public WeakReference(TReferencedType target, bool trackResurrection) : + base(target, trackResurrection) + { + } + + /// + /// Initializes a new instance of the WeakReference class, using deserialized + /// data from the specified serialization and stream objects. + /// + /// + /// An object that holds all the data needed to serialize or deserialize the + /// current System.WeakReference object. + /// + /// + /// (Reserved) Describes the source and destination of the serialized stream + /// specified by info. + /// + /// + /// The info parameter is null. + /// + /// + /// Gets or sets the object (the target) referenced by the current WeakReference + /// object. + /// + /// + /// Is null if the object referenced by the current System.WeakReference object + /// has been garbage collected; otherwise, a reference to the object referenced + /// by the current System.WeakReference object. + /// + /// + /// The reference to the target object is invalid. This can occur if the current + /// System.WeakReference object has been finalized + /// + public new TReferencedType Target + { + get { return base.Target as TReferencedType; } + set { base.Target = value; } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/UniRectangle.cs b/Source/MonoGame.Extended.NuclexGui/UniRectangle.cs new file mode 100644 index 00000000..1fbd3b56 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/UniRectangle.cs @@ -0,0 +1,196 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.NuclexGui +{ + /// Two-dimensional rectangle of combined fraction and offset coordinates + public struct UniRectangle + { + /// An empty unified rectangle + public static readonly UniRectangle Empty = new UniRectangle(); + + /// X coordinate of the rectangle's left border + public UniScalar Left + { + get { return Location.X; } + set { Location.X = value; } + } + + /// Y coordinate of the rectangle's upper border + public UniScalar Top + { + get { return Location.Y; } + set { Location.Y = value; } + } + + /// X coordinate of the rectangle's right border + public UniScalar Right + { + get { return Location.X + Size.X; } + set { Size.X = value - Location.X; } + } + + /// Y coordinate of the rectangle's lower border + public UniScalar Bottom + { + get { return Location.Y + Size.Y; } + set { Size.Y = value - Location.Y; } + } + + /// Point consisting of the lesser coordinates of the rectangle + public UniVector Min + { + get { return Location; } + set + { + // In short: this.Size += this.Location - value; + // Done for performance reasons + Size.X.Fraction += Location.X.Fraction - value.X.Fraction; + Size.X.Offset += Location.X.Offset - value.X.Offset; + Size.Y.Fraction += Location.Y.Fraction - value.Y.Fraction; + Size.Y.Offset += Location.Y.Offset - value.Y.Offset; + + Location = value; + } + } + + /// Point consisting of the greater coordinates of the rectangle + public UniVector Max + { + get { return Location + Size; } + set + { + // In short: this.Size = value - this.Location; + // Done for performance reasons + Size.X.Fraction = value.X.Fraction - Location.X.Fraction; + Size.X.Offset = value.X.Offset - Location.X.Offset; + Size.Y.Fraction = value.Y.Fraction - Location.X.Fraction; + Size.Y.Offset = value.Y.Offset - Location.Y.Offset; + } + } + + /// The location of the rectangle's upper left corner + public UniVector Location; + + /// The size of the rectangle + public UniVector Size; + + /// Initializes a new rectangle from a location and a size + /// Location of the rectangle's upper left corner + /// Size of the area covered by the rectangle + public UniRectangle(UniVector location, UniVector size) + { + Location = location; + Size = size; + } + + /// Initializes a new rectangle from the provided individual coordinates + /// X coordinate of the rectangle's left border + /// Y coordinate of the rectangle's upper border + /// Width of the area covered by the rectangle + /// Height of the area covered by the rectangle + public UniRectangle(UniScalar x, UniScalar y, UniScalar width, UniScalar height) + { + Location = new UniVector(x, y); + Size = new UniVector(width, height); + } + + /// Converts the rectangle into pure offset coordinates + /// Dimensions of the container the fractional part of the rectangle count for + /// A rectangle with the pure offset coordinates of the rectangle + public RectangleF ToOffset(Vector2 containerSize) + { + return ToOffset(containerSize.X, containerSize.Y); + } + + /// Converts the rectangle into pure offset coordinates + /// Width of the container the fractional part of the rectangle counts for + /// Height of the container the fractional part of the rectangle counts for + /// A rectangle with the pure offset coordinates of the rectangle + public RectangleF ToOffset(float containerWidth, float containerHeight) + { + var leftOffset = Left.Fraction*containerWidth + Left.Offset; + var topOffset = Top.Fraction*containerHeight + Top.Offset; + + return new RectangleF( + leftOffset, + topOffset, + Right.Fraction*containerWidth + Right.Offset - leftOffset, + Bottom.Fraction*containerHeight + Bottom.Offset - topOffset + ); + } + + /// Checks two rectangles for inequality + /// First rectangle to be compared + /// Second rectangle to be compared + /// True if the instances differ or exactly one reference is set to null + public static bool operator !=(UniRectangle first, UniRectangle second) + { + return !(first == second); + } + + /// Checks two rectangles for equality + /// First rectangle to be compared + /// Second rectangle to be compared + /// True if both instances are equal or both references are null + public static bool operator ==(UniRectangle first, UniRectangle second) + { + // For a struct, neither 'first' nor 'second' can be null + return first.Equals(second); + } + + /// Checks whether another instance is equal to this instance + /// Other instance to compare to this instance + /// True if the other instance is equal to this instance + public override bool Equals(object other) + { + if (!(other is UniRectangle)) + return false; + + return Equals((UniRectangle) other); + } + + /// Checks whether another instance is equal to this instance + /// Other instance to compare to this instance + /// True if the other instance is equal to this instance + public bool Equals(UniRectangle other) + { + // For a struct, 'other' cannot be null + return (Location == other.Location) && (Size == other.Size); + } + + /// Obtains a hash code of this instance + /// The hash code of the instance + public override int GetHashCode() + { + return Location.GetHashCode() ^ Size.GetHashCode(); + } + + /// + /// Returns a human-readable string representation for the unified rectangle + /// + /// The human-readable string representation of the unified rectangle + public override string ToString() + { + return string.Format( + "{{Location:{0}, Size:{1}}}", + Location, + Size + ); + } + + /// + /// Moves unified rectangle by the absolute values + /// + public void AbsoluteOffset(float x, float y) + { + Location.X.Offset += x; + Location.Y.Offset += y; + } + + public void FractionalOffset(float x, float y) + { + Location.X.Fraction += x; + Location.Y.Fraction += y; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/UniScalar.cs b/Source/MonoGame.Extended.NuclexGui/UniScalar.cs new file mode 100644 index 00000000..03ce41e5 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/UniScalar.cs @@ -0,0 +1,191 @@ +namespace MonoGame.Extended.NuclexGui +{ + /// Stores a size or location on one axis + /// + /// + /// Any position or size in GUI uses a combined position consisting + /// of a fraction and an offset. The fraction specifies the position or size as a + /// fraction of the parent frame's bounds and usually is in the range between 0.0 and + /// 1.0. The offset simply is the number of pixels to divert from the thusly + /// determined location. + /// + /// + /// Through the use of both fraction and offset, any kind of anchoring behavior can be + /// achieved that normally would require a complex anchoring and docking system as can + /// be seen in System.Windows.Forms. + /// + /// + /// If you, for example, wanted to always place a control 20 pixels from the right + /// border of its parent container, set the fraction of its position to 1.0 (always + /// on the right border) and the offset to -20.0 (go 20 units to the left from there). + /// + /// + /// You can achieve traditional absolute positioning by leaving the fraction at 0.0, + /// which is equivalent to the upper or left border of the parent container. + /// + /// + public struct UniScalar + { + /// A scalar that has been initialized to zero + public static readonly UniScalar Zero = new UniScalar(); + + /// Position of the scalar as fraction of the parent frame's bounds + /// + /// The relative part is normally in the 0.0 .. 1.0 range, denoting the + /// fraction of the parent container's size the scalar will indicate. + /// + public float Fraction; + + /// Offset of the scalar in pixels relative to its fractional position + /// + /// This part is taken literally without paying attention to the size of + /// the parent container the coordinate is used in. + /// + public float Offset; + + /// Initializes a new scalar from an offset only + /// Offset in pixels this scalar indicates + public UniScalar(float offset) : this(0.0f, offset) + { + } + + /// Initializes a new dimension from an absolute and a relative part + /// Fractional position within the parent frame + /// Offset in pixels from the fractional position + public UniScalar(float fraction, float offset) + { + Fraction = fraction; + Offset = offset; + } + + /// Implicitely constructs a scalar using a float as the absolute part + /// Float that will be used for the scalar's absolute value + /// + /// A new scalar constructed with the original float as its absolute part + /// + public static implicit operator UniScalar(float offset) + { + return new UniScalar(offset); + } + + /// Converts the scalar into a pure offset position + /// + /// Absolute dimension of the parent that the relative coordinate relates to + /// + /// + /// The absolute position in the parent container denoted by the dimension + /// + public float ToOffset(float containerSize) + { + return Fraction*containerSize + Offset; + } + + /// Adds one scalar to another + /// Base scalar to add to + /// Scalar to add to the base + /// The result of the addition + public static UniScalar operator +(UniScalar scalar, UniScalar summand) + { + return new UniScalar( + scalar.Fraction + summand.Fraction, + scalar.Offset + summand.Offset + ); + } + + /// Subtracts one scalar from another + /// Base scalar to subtract from + /// Scalar to subtract from the base + /// The result of the subtraction + public static UniScalar operator -(UniScalar scalar, UniScalar subtrahend) + { + return new UniScalar( + scalar.Fraction - subtrahend.Fraction, + scalar.Offset - subtrahend.Offset + ); + } + + /// Divides one scalar by another + /// Base scalar to be divided + /// Divisor to divide by + /// The result of the division + public static UniScalar operator /(UniScalar scalar, UniScalar divisor) + { + return new UniScalar( + scalar.Fraction/divisor.Fraction, + scalar.Offset/divisor.Offset + ); + } + + /// Multiplies one scalar with another + /// Base scalar to be multiplied + /// Factor to multiply by + /// The result of the multiplication + public static UniScalar operator *(UniScalar scalar, UniScalar factor) + { + return new UniScalar( + scalar.Fraction*factor.Fraction, + scalar.Offset*factor.Offset + ); + } + + /// Checks two scalars for inequality + /// First scalar to be compared + /// Second scalar to be compared + /// True if the instances differ or exactly one reference is set to null + public static bool operator !=(UniScalar first, UniScalar second) + { + return !(first == second); + } + + /// Checks two scalars for equality + /// First scalar to be compared + /// Second scalar to be compared + /// True if both instances are equal or both references are null + public static bool operator ==(UniScalar first, UniScalar second) + { + // For a struct, neither 'first' nor 'second' can be null + return first.Equals(second); + } + + /// Checks whether another instance is equal to this instance + /// Other instance to compare to this instance + /// True if the other instance is equal to this instance + public override bool Equals(object other) + { + if (!(other is UniScalar)) + return false; + + return Equals((UniScalar) other); + } + + /// Checks whether another instance is equal to this instance + /// Other instance to compare to this instance + /// True if the other instance is equal to this instance + public bool Equals(UniScalar other) + { + // For a struct, 'other' cannot be null + return (Fraction == other.Fraction) && (Offset == other.Offset); + } + + /// Obtains a hash code of this instance + /// The hash code of the instance + public override int GetHashCode() + { + return Fraction.GetHashCode() ^ Offset.GetHashCode(); + } + + /// + /// Returns a human-readable string representation for the unified scalar + /// + /// The human-readable string representation of the unified scalar + public override string ToString() + { + return string.Format( + "{{{0}% {1}{2}}}", + Fraction*100.0f, + Offset >= 0.0f ? "+" : string.Empty, + Offset + ); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/UniVector.cs b/Source/MonoGame.Extended.NuclexGui/UniVector.cs new file mode 100644 index 00000000..a5dc7ea0 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/UniVector.cs @@ -0,0 +1,165 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.NuclexGui +{ + /// Stores a two-dimensional position or size + public struct UniVector + { + /// A vector that has been initialized to zero + public static readonly UniVector Zero = new UniVector(); + + /// The vector's X coordinate + public UniScalar X; + + /// The vector's Y coordinate + public UniScalar Y; + + /// Initializes a new vector from the provided components + /// Absolute and relative X coordinate of the vector + /// Absolute and relative Y coordinate of the vector + public UniVector(UniScalar x, UniScalar y) + { + X = x; + Y = y; + } + + /// Converts the vector into pure offset coordinates + /// + /// Dimensions of the container the relative part of the vector counts for + /// + /// An XNA vector with the pure offset coordinates of the vector + public Vector2 ToOffset(Vector2 containerSize) + { + return ToOffset(containerSize.X, containerSize.Y); + } + + /// Converts the vector into pure offset coordinates + /// + /// Width of the container the fractional part of the vector counts for + /// + /// + /// Height of the container the fractional part of the vector counts for + /// + /// An XNA vector with the pure offset coordinates of the vector + public Vector2 ToOffset(float containerWidth, float containerHeight) + { + return new Vector2( + X.Fraction*containerWidth + X.Offset, + Y.Fraction*containerHeight + Y.Offset + ); + } + + /// Adds one vector to another + /// Base vector to add to + /// Vector to add to the base + /// The result of the addition + public static UniVector operator +(UniVector vector, UniVector summand) + { + return new UniVector(vector.X + summand.X, vector.Y + summand.Y); + } + + /// Subtracts one vector from another + /// Base vector to subtract from + /// Vector to subtract from the base + /// The result of the subtraction + public static UniVector operator -(UniVector vector, UniVector subtrahend) + { + return new UniVector(vector.X - subtrahend.X, vector.Y - subtrahend.Y); + } + + /// Divides one vector by another + /// Base vector to be divided + /// Divisor to divide by + /// The result of the division + public static UniVector operator /(UniVector vector, UniVector divisor) + { + return new UniVector(vector.X/divisor.X, vector.Y/divisor.Y); + } + + /// Multiplies one vector with another + /// Base vector to be multiplied + /// Factor to multiply by + /// The result of the multiplication + public static UniVector operator *(UniVector vector, UniVector factor) + { + return new UniVector(vector.X*factor.X, vector.Y*factor.Y); + } + + /// Scales a vector by a scalar factor + /// Factor by which to scale the vector + /// Vector to be Scaled + /// The result of the multiplication + public static UniVector operator *(UniScalar factor, UniVector vector) + { + return new UniVector(factor*vector.X, factor*vector.Y); + } + + /// Scales a vector by a scalar factor + /// Vector to be Scaled + /// Factor by which to scale the vector + /// The result of the multiplication + public static UniVector operator *(UniVector vector, UniScalar factor) + { + return new UniVector(vector.X*factor, vector.Y*factor); + } + + /// Checks two vectors for inequality + /// First vector to be compared + /// Second vector to be compared + /// True if the instances differ or exactly one reference is set to null + public static bool operator !=(UniVector first, UniVector second) + { + return !(first == second); + } + + /// Checks two vectors for equality + /// First vector to be compared + /// Second vector to be compared + /// True if both instances are equal or both references are null + public static bool operator ==(UniVector first, UniVector second) + { + // For a struct, neither 'first' nor 'second' can be null + return first.Equals(second); + } + + /// Checks whether another instance is equal to this instance + /// Other instance to compare to this instance + /// True if the other instance is equal to this instance + public override bool Equals(object other) + { + if (!(other is UniVector)) + return false; + + return Equals((UniVector) other); + } + + /// Checks whether another instance is equal to this instance + /// Other instance to compare to this instance + /// True if the other instance is equal to this instance + public bool Equals(UniVector other) + { + // For a struct, 'other' cannot be null + return (X == other.X) && (Y == other.Y); + } + + /// Obtains a hash code of this instance + /// The hash code of the instance + public override int GetHashCode() + { + return X.GetHashCode() ^ Y.GetHashCode(); + } + + /// + /// Returns a human-readable string representation for the unified vector + /// + /// The human-readable string representation of the unified vector + public override string ToString() + { + return string.Format( + "{{X:{0}, Y:{1}}}", + X, + Y + ); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiGraphics.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiGraphics.cs new file mode 100644 index 00000000..a0e0e9b7 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiGraphics.cs @@ -0,0 +1,267 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat +{ + public partial class FlatGuiGraphics : IFlatGuiGraphics, IDisposable + { + /// Width of the caret used for text input + private const float _caretWidth = 2.0f; + + /// Bitmaps containing resources for the GUI + private readonly Dictionary _bitmaps; + + /// Font styles known to the GUI + private readonly Dictionary _fonts; + + /// Types of frames the painter can draw + private readonly Dictionary _frames; + + /// Locates openings between letters in strings + private readonly OpeningLocator _openingLocator; + + /// Rasterizer state used for drawing the GUI + private readonly RasterizerState _rasterizerState; + + /// Manages the scissor rectangle and its assignment time + private readonly ScissorKeeper _scissorManager; + + /// String builder used for various purposes in this class + private readonly StringBuilder _stringBuilder; + + /// Manages the content used to draw the GUI + private ContentManager _contentManager; + + /// Batches GUI elements for faster drawing + private SpriteBatch _spriteBatch; + + /// Initializes a new gui painter + /// + /// Content manager containing the resources for the GUI. The instance takes + /// ownership of the content manager and will dispose it. + /// + /// + /// Stream from which the skin description will be read + /// + public FlatGuiGraphics(ContentManager contentManager, Stream skinStream) + { + var graphicsDeviceService = + (IGraphicsDeviceService) contentManager.ServiceProvider.GetService( + typeof(IGraphicsDeviceService) + ); + + _spriteBatch = new SpriteBatch(graphicsDeviceService.GraphicsDevice); + _contentManager = contentManager; + _openingLocator = new OpeningLocator(); + _stringBuilder = new StringBuilder(64); + _scissorManager = new ScissorKeeper(this); + _rasterizerState = new RasterizerState + { + ScissorTestEnable = true + }; + _fonts = new Dictionary(); + _bitmaps = new Dictionary(); + _frames = new Dictionary(); + + LoadSkin(skinStream); + } + + /// Immediately releases all resources owned by the instance + public void Dispose() + { + if (_contentManager != null) + { + _contentManager.Dispose(); + _contentManager = null; + } + if (_spriteBatch != null) + { + _spriteBatch.Dispose(); + _spriteBatch = null; + } + } + + private void LoadSkin(Stream skinStream) + { + var skin = GuiSkin.FromStream(skinStream); + + foreach (var font in skin.resources.font) + _fonts.Add(font.Name, _contentManager.Load(font.ContentPath)); + + foreach (var texture in skin.resources.bitmap) + _bitmaps.Add(texture.Name, _contentManager.Load(texture.ContentPath)); + + foreach (var frame in skin.frames) + { + if (frame.Regions != null) + { + for (var i = 0; i < frame.Regions.Length; i++) + frame.Regions[i].Texture = _bitmaps[frame.Regions[i].Source]; + + _frames.Add(frame.Name, frame); + } + + for (var i = 0; i < frame.Texts.Length; i++) + _fonts.TryGetValue(frame.Texts[i].Source, out frame.Texts[i].Font); + } + } + + /// + /// Positions a string within a frame according to the positioning instructions + /// stored in the provided text anchor. + /// + /// Text anchor the string will be positioned for + /// Boundaries of the control the string is rendered in + /// String that will be positioned + /// The position of the string within the control + private Vector2 PositionText(ref Frame.Text anchor, RectangleF bounds, string text) + { + var textSize = anchor.Font.MeasureString(text); + float x, y; + + switch (anchor.HorizontalPlacement) + { + case Frame.HorizontalTextAlignment.Left: + { + x = bounds.Left; + break; + } + case Frame.HorizontalTextAlignment.Right: + { + x = bounds.Right - textSize.X; + break; + } + case Frame.HorizontalTextAlignment.Center: + default: + { + x = (bounds.Width - textSize.X)/2.0f + bounds.Left; + break; + } + } + + switch (anchor.VerticalPlacement) + { + case Frame.VerticalTextAlignment.Top: + { + y = bounds.Top; + break; + } + case Frame.VerticalTextAlignment.Bottom: + { + y = bounds.Bottom - textSize.Y; + break; + } + case Frame.VerticalTextAlignment.Center: + default: + { + y = (bounds.Height - textSize.Y)/2.0f + bounds.Top; + break; + } + } + + return new Vector2(Floor(x + anchor.Offset.X), Floor(y + anchor.Offset.Y)); + } + + /// + /// Calculates the absolute pixel position of a rectangle in unified coordinates + /// + /// Bounds of the drawing area in pixels + /// Destination rectangle in unified coordinates + /// + /// The destination rectangle converted to absolute pixel coordinates + /// + private static Rectangle CalculateDestinationRectangle(ref RectangleF bounds, ref UniRectangle destination) + { + var x = (int) (bounds.X + destination.Location.X.Offset); + x += (int) (bounds.Width*destination.Location.X.Fraction); + + var y = (int) (bounds.Y + destination.Location.Y.Offset); + y += (int) (bounds.Height*destination.Location.Y.Fraction); + + var width = (int) destination.Size.X.Offset; + width += (int) (bounds.Width*destination.Size.X.Fraction); + + var height = (int) destination.Size.Y.Offset; + height += (int) (bounds.Height*destination.Size.Y.Fraction); + + return new Rectangle(x, y, width, height); + } + + /// Looks up the frame with the specified name + /// Frame that will be looked up + /// The frame with the specified name + private Frame LookupFrame(string frameName) + { + // Make sure the renderer specified a valid frame name. If someone modifies + // the skin or uses a skin which does not support all required controls, + // this will provide the user with a clear error message. + Frame frame; + if (!_frames.TryGetValue(frameName, out frame)) + throw new ArgumentException("Unknown frame type: '" + frameName + "'", "frameName"); + + return frame; + } + + /// Removes the fractional part from the floating point value + /// Value whose fractional part will be removed + /// The floating point value without its fractional part + private static float Floor(float value) + { + return (float) Math.Floor(value); + } + + /// Manages the scissor rectangle for the GUI graphics interface + private class ScissorKeeper : IDisposable + { + /// GUI graphics interface for which the scissor rectangle is managed + private readonly FlatGuiGraphics _flatGuiGraphics; + + /// Scissor rectangle that was previously assigned to the graphics device + private Rectangle _oldScissorRectangle; + + /// Initializes a new scissor manager + /// GUI graphics interface the scissor rectangle will be managed for + public ScissorKeeper(FlatGuiGraphics flatGuiGraphics) + { + _flatGuiGraphics = flatGuiGraphics; + } + + /// Releases the currently assigned scissor rectangle again + public void Dispose() + { + _flatGuiGraphics.EndSpriteBatch(); + try + { + var graphics = _flatGuiGraphics._spriteBatch.GraphicsDevice; + graphics.ScissorRectangle = _oldScissorRectangle; + } + finally + { + _flatGuiGraphics.BeginSpriteBatch(); + } + } + + /// Assigns the scissor rectangle to the graphics device + /// Scissor rectangle that will be assigned + public void Assign(ref Rectangle clipRegion) + { + _flatGuiGraphics.EndSpriteBatch(); + try + { + var graphics = _flatGuiGraphics._spriteBatch.GraphicsDevice; + _oldScissorRectangle = graphics.ScissorRectangle; + graphics.ScissorRectangle = clipRegion; + } + finally + { + _flatGuiGraphics.BeginSpriteBatch(); + } + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiGraphicsDrawing.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiGraphicsDrawing.cs new file mode 100644 index 00000000..3744079e --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiGraphicsDrawing.cs @@ -0,0 +1,235 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat +{ + public partial class FlatGuiGraphics + { + /// Sets the clipping region for any future drawing commands + /// Clipping region that will be set + /// + /// An object that will unset the clipping region upon its destruction. + /// + /// + /// Clipping regions can be stacked, though this is not very typical for + /// a game GUI and also not recommended practice due to performance constraints. + /// Unless clipping is implemented in software, setting up a clip region + /// on current hardware requires the drawing queue to be flushed, negatively + /// impacting rendering performance (in technical terms, a clipping region + /// change likely causes 2 more DrawPrimitive() calls from the painter). + /// + public IDisposable SetClipRegion(RectangleF clipRegion) + { + // Cache the integer values of the clipping region's boundaries + var clipX = (int) clipRegion.X; + var clipY = (int) clipRegion.Y; + var clipRight = clipX + (int) clipRegion.Width; + var clipBottom = clipY + (int) clipRegion.Height; + + // Calculate the viewport's right and bottom coordinates + var viewport = _spriteBatch.GraphicsDevice.Viewport; + var viewportRight = viewport.X + viewport.Width; + var viewportBottom = viewport.Y + viewport.Height; + + // Extract the part of the clipping region that lies within the viewport + var scissorRegion = new Rectangle( + Math.Max(clipX, viewport.X), + Math.Max(clipY, viewport.Y), + Math.Min(clipRight, viewportRight) - clipX, + Math.Min(clipBottom, viewportBottom) - clipY + ); + scissorRegion.Width += clipX - scissorRegion.X; + scissorRegion.Height += clipY - scissorRegion.Y; + + // If the clipping region was entirely outside of the viewport (meaning + // the calculated width and/or height are negative), use an empty scissor + // rectangle instead because XNA doesn't like scissor rectangles with + // negative coordinates. + if ((scissorRegion.Width <= 0) || (scissorRegion.Height <= 0)) + scissorRegion = Rectangle.Empty; + + // All done, take over the new scissor rectangle + _scissorManager.Assign(ref scissorRegion); + return _scissorManager; + } + + /// Draws a GUI element onto the drawing buffer + /// Class of the element to draw + /// Region that will be covered by the drawn element + /// + /// + /// GUI elements are the basic building blocks of a GUI: + /// + /// + public void DrawElement(string frameName, RectangleF bounds) + { + var frame = LookupFrame(frameName); + + // Draw all the regions defined for the element. Each region is a small bitmap + // that needs to be blit somewhere into the element to form the element's + // visual representation step by step. + for (var index = 0; index < frame.Regions.Length; ++index) + { + var destinationRegion = CalculateDestinationRectangle(ref bounds, + ref frame.Regions[index].DestinationRegion); + + _spriteBatch.Draw(frame.Regions[index].Texture, destinationRegion, frame.Regions[index].SourceRegion, + Color.White); + } + } + + /// Draws text into the drawing buffer for the specified element + /// Class of the element for which to draw text + /// Region that will be covered by the drawn element + /// Text that will be drawn + public void DrawString(string frameName, RectangleF bounds, string text) + { + var frame = LookupFrame(frameName); + + // Draw the text in all anchor locations defined by the skin + for (var index = 0; index < frame.Texts.Length; ++index) + { + _spriteBatch.DrawString(frame.Texts[index].Font, text, + PositionText(ref frame.Texts[index], bounds, text), frame.Texts[index].Color); + } + } + + public void DrawImage(RectangleF bounds, Texture2D texture, Rectangle sourceRectangle) + { + var destinationRectangle = new Rectangle(); + + if (bounds.Width > bounds.Height) + { + destinationRectangle.Height = Convert.ToInt32(Math.Round(bounds.Height * 0.8)); + destinationRectangle.Width = Convert.ToInt32(Math.Round(bounds.Width * 0.8 * (bounds.Height / sourceRectangle.Height))); + destinationRectangle.X = Convert.ToInt32(Math.Round(bounds.Center.X)) - destinationRectangle.Width / 2; + destinationRectangle.Y = Convert.ToInt32(Math.Round(bounds.Center.Y)) - destinationRectangle.Height / 2; + } + else + { + destinationRectangle.Width = Convert.ToInt32(Math.Round(bounds.Width * 0.8)); + destinationRectangle.Height = Convert.ToInt32(Math.Round(bounds.Height * 0.8 * (bounds.Width / sourceRectangle.Width))); + destinationRectangle.X = Convert.ToInt32(Math.Round(bounds.Center.X)) - destinationRectangle.Width / 2; + destinationRectangle.Y = Convert.ToInt32(Math.Round(bounds.Center.Y)) - destinationRectangle.Height / 2; + } + + _spriteBatch.Draw(texture, destinationRectangle, sourceRectangle, Color.White); + } + + /// Draws a caret for text input at the specified index + /// Class of the element for which to draw a caret + /// Region that will be covered by the drawn element + /// Text for which a caret will be drawn + /// Index the caret will be drawn at + public void DrawCaret(string frameName, RectangleF bounds, string text, int caretIndex) + { + var frame = LookupFrame(frameName); + + _stringBuilder.Remove(0, _stringBuilder.Length); + _stringBuilder.Append(text, 0, caretIndex); + + Vector2 caretPosition, textPosition; + for (var index = 0; index < frame.Texts.Length; ++index) + { + textPosition = PositionText(ref frame.Texts[index], bounds, text); + + caretPosition = frame.Texts[index].Font.MeasureString(_stringBuilder); + caretPosition.X -= _caretWidth; + caretPosition.Y = 0.0f; + + _spriteBatch.DrawString(frame.Texts[index].Font, "|", textPosition + caretPosition, + frame.Texts[index].Color); + } + } + + /// Measures the extents of a string in the frame's area + /// Class of the element whose text will be measured + /// Region that will be covered by the drawn element + /// Text that will be measured + /// + /// The size and extents of the specified string within the frame + /// + public RectangleF MeasureString(string frameName, RectangleF bounds, string text) + { + var frame = LookupFrame(frameName); + + Vector2 size; + if (frame.Texts.Length > 0) + size = frame.Texts[0].Font.MeasureString(text); + else size = Vector2.Zero; + + return new RectangleF(0.0f, 0.0f, size.X, size.Y); + } + + /// + /// Locates the closest gap between two letters to the provided position + /// + /// Class of the element in which to find the gap + /// Region that will be covered by the drawn element + /// Text in which the closest gap will be found + /// Position of which to determien the closest gap + /// The index of the gap the position is closest to + public int GetClosestOpening( + string frameName, RectangleF bounds, string text, Vector2 position + ) + { + var frame = LookupFrame(frameName); + + // Frames can repeat their text in several places. Though this is probably + // not used very often (if at all), it should work here consistently. + + var closestGap = -1; + + for (var index = 0; index < frame.Texts.Length; ++index) + { + var textPosition = PositionText(ref frame.Texts[index], bounds, text); + position.X -= textPosition.X; + position.Y -= textPosition.Y; + + var openingX = position.X; + var openingIndex = _openingLocator.FindClosestOpening( + frame.Texts[index].Font, text, position.X + _caretWidth + ); + + closestGap = openingIndex; + } + + return closestGap; + } + + /// Needs to be called before the GUI drawing process begins + public void BeginDrawing() + { + var graphics = _spriteBatch.GraphicsDevice; + + var viewport = graphics.Viewport; + graphics.ScissorRectangle = new Rectangle(0, 0, viewport.Width, viewport.Height); + + // On Windows Phone 7, if only the GUI is rendered (no other SpriteBatches) + // and the initial spriteBatch.Begin() includes the scissor rectangle, + // nothing will be drawn at all, so we don't use beginSpriteBatch() here + // and instead call SpriteBatch.Begin() ourselves. Care has to be taken + // if something ever gets added to the beginSpriteBatch() method. + _spriteBatch.Begin(); + } + + /// Needs to be called when the GUI drawing process has ended + public void EndDrawing() + { + EndSpriteBatch(); + } + + /// Starts drawing on the sprite batch + private void BeginSpriteBatch() + { + _spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, null, _rasterizerState); + } + + /// Stops drawing on the sprite batch + private void EndSpriteBatch() + { + _spriteBatch.End(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiVisualizer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiVisualizer.cs new file mode 100644 index 00000000..f2145842 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiVisualizer.cs @@ -0,0 +1,281 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using Microsoft.Xna.Framework.Content; +using MonoGame.Extended.NuclexGui.Controls; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat +{ + // Having two overloads of the Draw() method, one doing nothing, is confusing + // and should be avoided. Find a better solution. Perhaps we can rely completely + // on the virtualized graphics device here. + + /// Draws traditional flat GUIs using 2D bitmaps + public class FlatGuiVisualizer : IGuiVisualizer, IDisposable + { + /// Helps draw the GUI controls in the hierarchically correct order + /// + /// This is a field and not a local variable because the stack allocates + /// heap memory and we don't want that to happen in a frame-by-frame basis on + /// the compact framework. By reusing the same stack over and over, the amount + /// of heap allocations required will amortize itself. + /// + private readonly Stack _controlStack; + + /// Used to draw the individual building elements of the GUI + private FlatGuiGraphics _flatGuiGraphics; + + /// Avaiable renderers + private readonly Dictionary _renderers; + + /// Initializes a new gui painter for traditional GUIs + /// Content manager that will be used to load the skin resources + /// Stream from which the GUI Visualizer will read the skin description + protected FlatGuiVisualizer(ContentManager contentManager, Stream skinStream) + { + _renderers = new Dictionary(); + + // Obtain default GUI renderers + FetchRenderers(); + + _flatGuiGraphics = new FlatGuiGraphics(contentManager, skinStream); + _controlStack = new Stack(); + } + + /// Immediately releases all resources owned by the instance + public void Dispose() + { + if (_flatGuiGraphics != null) + { + _flatGuiGraphics.Dispose(); + _flatGuiGraphics = null; + } + } + + /// Draws an entire GUI hierarchy + /// Screen containing the GUI that will be drawn + public void Draw(GuiScreen screen) + { + _flatGuiGraphics.BeginDrawing(); + try + { + _controlStack.Push(ControlWithBounds.FromScreen(screen)); + + while (_controlStack.Count > 0) + { + var controlWithBounds = _controlStack.Pop(); + + var currentControl = controlWithBounds.Control; + var currentBounds = controlWithBounds.Bounds; + + // Add the controls in normal order, so the first control in the collection will + // be taken off the stack last, ensuring it's rendered on top of all others. + for (var index = 0; index < currentControl.Children.Count; ++index) + _controlStack.Push(ControlWithBounds.FromControl(currentControl.Children[index], currentBounds)); + + RenderControl(currentControl); + } + } + finally + { + _flatGuiGraphics.EndDrawing(); + } + } + + /// Renders a single control + /// Control that will be rendered + private void RenderControl(GuiControl controlToRender) + { + IControlRendererAdapter renderer = null; + + var controlType = controlToRender.GetType(); + + // If this is an actual instance of the 'Control' class, don't render it. + // Such instances can be used to construct invisible containers, and are most + // prominently embodied in the 'desktop' control that hosts the whole GUI. + if ((controlType == typeof(GuiControl)) || (controlType == typeof(GuiDesktopControl))) + return; + + // Find a renderer for this control. If no renderer for the control itself can + // be found, look for a renderer then can render its base class. This allows + // controls to inherit from existing controls, remaining renderable (but also + // gaining the ability to accept a specialized renderer for the new derived + // control class!). Normally, this loop will finish without any repetitions. + while (controlType != typeof(object)) + { + var found = _renderers.TryGetValue(controlType, out renderer); + if (found) break; + + // Next, try the base class of this type + controlType = controlType.GetTypeInfo().BaseType; + } + + // If we found a renderer, use it to render the control + if (renderer != null) + renderer.Render(controlToRender, _flatGuiGraphics); + } + + private void FetchRenderers() + { + foreach ( + var typeinfo in + typeof(FlatGuiVisualizer).GetTypeInfo().Assembly.DefinedTypes.Where(e => e.IsPublic && !e.IsAbstract)) + { + // If the type doesn't implement the IFlatcontrolRenderer interface, there's + // no chance that it will implement one of the generic control drawers + if (!typeof(IFlatControlRenderer).GetTypeInfo().IsAssignableFrom(typeinfo)) + continue; + + // We also need a default constructor in order to be able to create an instance of this renderer + if (typeinfo.DeclaredConstructors.Count(e => e.IsPublic && (e.GetParameters().Length == 0)) == 0) + continue; + + // Look for the IFlatControlRenderer<> interface in all interfaces implemented this type + var genericType = + typeinfo.ImplementedInterfaces.Where( + e => + e.IsConstructedGenericType && + (e.GetGenericTypeDefinition() == typeof(IFlatControlRenderer<>))).FirstOrDefault(); + if (genericType == default(Type)) continue; + + // Find out which control type the renderer is specialized for + var controlType = genericType.GenericTypeArguments; + + // Do we already have a renderer for this control type? + if (!_renderers.ContainsKey(controlType[0])) + { + // Type of the downcast adapter we need to bring to life + var adapterType = typeof(ControlRendererAdapter<>).MakeGenericType(controlType[0]); + var adapterConstructor = adapterType.GetTypeInfo().DeclaredConstructors.FirstOrDefault(); + + // Now use that constructor to create an instance + var adapterInstance = adapterConstructor.Invoke(new[] {Activator.CreateInstance(typeinfo.AsType())}); + + // Employ the new adapter and thereby the control renderer it adapts + _renderers.Add(controlType[0], (IControlRendererAdapter) adapterInstance); + } + } + } + + /// Initializes a new gui visualizer from a skin stored as a resource + /// Game service provider containing the graphics device service + /// Name of the Json file containing the skin description + public static FlatGuiVisualizer FromResource(IServiceProvider serviceProvider, string skinJsonFile) + { + var assembly = typeof(FlatGuiVisualizer).GetTypeInfo().Assembly; + var resources = assembly.GetManifestResourceNames(); + + if (!resources.Contains(skinJsonFile)) + throw new ArgumentException("Resource '" + skinJsonFile + "' not found", "skinJsonFile"); + + using (var skinStream = assembly.GetManifestResourceStream(skinJsonFile)) + { + var contentManager = new ContentManager(serviceProvider, "Content"); + + try + { + return new FlatGuiVisualizer(contentManager, skinStream); + } + catch (Exception) + { + contentManager.Dispose(); + throw; + } + } + } + + /// Container for a control and its absolute boundaries + private struct ControlWithBounds + { + /// Control stored in the container + public readonly GuiControl Control; + + /// Absolute boundaries of the stored control + public readonly RectangleF Bounds; + + /// Initializes a new control and absolute boundary container + /// Control being store in the container + /// Absolute boundaries the control lives in + public ControlWithBounds(GuiControl control, RectangleF bounds) + { + Control = control; + Bounds = bounds; + } + + /// Builds an absolute boundary container from the provided control + /// Control from which a container will be created + /// Absolute boundaries of the control's parent + /// A new container with the control + public static ControlWithBounds FromControl(GuiControl control, RectangleF containerBounds) + { + containerBounds.X += control.Bounds.Location.X.Fraction*containerBounds.Width; + containerBounds.X += control.Bounds.Location.X.Offset; + containerBounds.Y += control.Bounds.Location.Y.Fraction*containerBounds.Height; + containerBounds.Y += control.Bounds.Location.Y.Offset; + + containerBounds.Width = control.Bounds.Size.X.ToOffset(containerBounds.Width); + containerBounds.Height = control.Bounds.Size.Y.ToOffset(containerBounds.Height); + + return new ControlWithBounds(control, containerBounds); + } + + /// Builds a control and absolute boundary container from a screen + /// Screen whose desktop control and absolute boundaries are used to construct the container + /// A new container with the screen's desktop control + public static ControlWithBounds FromScreen(GuiScreen screen) + { + return new ControlWithBounds(screen.Desktop, screen.Desktop.Bounds.ToOffset(screen.Width, screen.Height)); + } + } + + /// Interface for a generic (typeless) control renderer + internal interface IControlRendererAdapter + { + /// The type of the control renderer being adapted + Type AdaptedType { get; } + + /// Renders the specified control using the provided graphics interface + /// Control that will be rendered + /// Graphics interface that will be used to render the control + void Render(GuiControl controlToRender, IFlatGuiGraphics graphics); + } + + /// + /// Adapter that automatically casts a control down to the renderer's supported + /// control type + /// + /// + /// Type of control the control renderer casts down to + /// + /// + /// This is simply an optimization to avoid invoking the control renderer + /// by reflection (using the Invoke() method) which would require us to construct + /// an object[] array on the heap to pass its arguments. + /// + private class ControlRendererAdapter : IControlRendererAdapter where TControlType : GuiControl + { + /// Control renderer this adapter is performing the downcast for + private readonly IFlatControlRenderer _controlRenderer; + + /// Initializes a new control renderer adapter + /// Control renderer the adapter is used for + public ControlRendererAdapter(IFlatControlRenderer controlRenderer) + { + _controlRenderer = controlRenderer; + } + + /// Renders the specified control using the provided graphics interface + /// Control that will be rendered + /// Graphics interface that will be used to render the control + public void Render(GuiControl controlToRender, IFlatGuiGraphics graphics) + { + _controlRenderer.Render((TControlType) controlToRender, graphics); + } + + /// The type of the control renderer being adapted + public Type AdaptedType => _controlRenderer.GetType(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/GuiSkin.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/GuiSkin.cs new file mode 100644 index 00000000..5fc3337b --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/GuiSkin.cs @@ -0,0 +1,176 @@ +using System.Collections.Generic; +using System.IO; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using Newtonsoft.Json; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat +{ + /// Frame that can be drawn by the GUI painter + public class Frame + { + /// Modes in which text can be horizontally aligned + public enum HorizontalTextAlignment + { + /// The text's base offset is placed at the left of the frame + /// + /// The base offset is normally identical to the text's leftmost pixel. + /// However, a glyph may have some eccentrics like an arc that extends to + /// the left over the letter's actual starting position. + /// + Left, + + /// + /// The text's ending offset is placed at the right of the frame + /// + /// + /// The ending offset is normally identical to the text's rightmost pixel. + /// However, a glyph may have some eccentrics like an arc that extends to + /// the right over the last letter's actual ending position. + /// + Right, + + /// The text is centered horizontally in the frame + Center + } + + /// Modes in which text can be vertically aligned + public enum VerticalTextAlignment + { + /// The text's baseline is placed at the top of the frame + Top, + + /// The text's baseline is placed at the bottom of the frame + Bottom, + + /// The text's baseline is centered vertically in the frame + Center + } + + [JsonProperty("name")] public string Name; + + /// Regions that need to be drawn to render the frame + [JsonProperty("region")] public Region[] Regions; + + [JsonProperty("text")] + /// Locations where text can be drawn into the frame + public Text[] Texts; + + /// Initializes a new frame + /// Regions needed to be drawn to render the frame + /// Location in the frame where text can be drawn + public Frame(Region[] regions, Text[] texts) + { + Regions = regions; + Texts = texts; + + if (regions == null) + Regions = new Region[0]; + + if (texts == null) + Texts = new Text[0]; + } + + /// Defines a picture region drawn into a frame + public struct Region + { + /// Identification string for the region + /// + /// Used to associate regions with specific behavior + /// + public string Id; + + /// Texture the picture region is taken from + public Texture2D Texture; + + /// Area within the texture containing the picture region + public Rectangle SourceRegion; + + /// Location in the frame where the picture region will be drawn + public UniRectangle DestinationRegion; + + /// Name of the texture the picture region is taken from + public string Source; + } + + /// Describes where within the frame text should be drawn + public struct Text + { + /// Font to use for drawing the text + public SpriteFont Font; + + /// Offset of the text relative to its specified placement + public Point Offset; + + /// Horizontal placement of the text within the frame + public HorizontalTextAlignment HorizontalPlacement; + + /// Vertical placement of the text within the frame + public VerticalTextAlignment VerticalPlacement; + + /// Color the text will have + public Color Color; + + /// Name of the font used for drawing the text + public string Source; + } + } + + public class GuiSkin + { + public GuiSkin() + { + frames = new List(); + resources = new Resources + { + bitmap = new List(), + font = new List() + }; + + } + + public Resources resources { get; set; } + public List frames { get; set; } + + public static GuiSkin FromFile(string path) + { + using (var stream = TitleContainer.OpenStream(path)) + { + return FromStream(stream); + } + } + + public static GuiSkin FromStream(Stream stream) + { + using (var streamReader = new StreamReader(stream)) + { + var json = streamReader.ReadToEnd(); + + var converters = new JsonConverter[] + { + new GuiSkinJsonConverter() + }; + + return JsonConvert.DeserializeObject(json, converters); + } + } + + public class Resources + { + public List font { get; set; } + public List bitmap { get; set; } + + public class Font + { + public string Name { get; set; } + public string ContentPath { get; set; } + } + + public class Bitmap + { + public string Name { get; set; } + public string ContentPath { get; set; } + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/GuiSkinConverters.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/GuiSkinConverters.cs new file mode 100644 index 00000000..3cb7ec9e --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/GuiSkinConverters.cs @@ -0,0 +1,236 @@ +using System; +using Microsoft.Xna.Framework; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat +{ + public class GuiSkinJsonConverter : JsonConverter + { + /// Width of the frame's bottom border regions + private int _bottomBorderWidth; + + /// Width of the frame's left border regions + private int _leftBorderWidth; + + /// Width of the frame's right border regions + private int _rightBorderWidth; + + /// Width of the frame's top border regions + private int _topBorderWidth; + + public override bool CanConvert(Type objectType) + { + if (objectType == typeof(Frame.Region[])) + return true; + + if (objectType == typeof(Frame.Text)) + return true; + + return false; + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, + JsonSerializer serializer) + { + if (objectType == typeof(Frame.Region[])) + return ParseRegions(JArray.Load(reader)); + + if (objectType == typeof(Frame.Text)) + return ParseText(JToken.Load(reader)); + + return (string) reader.Value; + } + + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + } + + private Frame.Region[] ParseRegions(JArray jArray) + { + var regions = new Frame.Region[jArray.Count]; + + _leftBorderWidth = 0; + _rightBorderWidth = 0; + _topBorderWidth = 0; + _bottomBorderWidth = 0; + + // Detect borders + foreach (var token in jArray) + { + var hPlacement = token.Value("hplacement"); + var vPlacement = token.Value("vplacement"); + + if (hPlacement == "left") + _leftBorderWidth = Math.Max(_leftBorderWidth, token.Value("w")); + else + { + if (hPlacement == "right") + _rightBorderWidth = Math.Max(_rightBorderWidth, token.Value("w")); + } + + if (vPlacement == "top") + _topBorderWidth = Math.Max(_topBorderWidth, token.Value("h")); + else + { + if (vPlacement == "bottom") + _bottomBorderWidth = Math.Max(_bottomBorderWidth, token.Value("h")); + } + } + + // Parse each region + for (var i = 0; i < regions.Length; i++) + regions[i] = ParseRegion(jArray[i]); + + return regions; + } + + private Frame.Region ParseRegion(JToken token) + { + var region = new Frame.Region(); + + var hAlignment = token.Value("hplacement"); + var vAlignment = token.Value("vplacement"); + var x = token.Value("x"); + var y = token.Value("y"); + var w = token.Value("w"); + var h = token.Value("h"); + + // Assign trivialities + region.Source = token.Value("source"); + region.Id = token.Value("id"); + region.SourceRegion.X = x; + region.SourceRegion.Y = y; + region.SourceRegion.Width = w; + region.SourceRegion.Height = h; + + // Process each region's placement and set up the unified coordinates + CalculateRegionPlacement(GetHorizontalPlacementIndex(hAlignment), w, _leftBorderWidth, _rightBorderWidth, + ref region.DestinationRegion.Location.X, ref region.DestinationRegion.Size.X); + CalculateRegionPlacement(GetVerticalPlacementIndex(vAlignment), h, _topBorderWidth, _bottomBorderWidth, + ref region.DestinationRegion.Location.Y, ref region.DestinationRegion.Size.Y); + + return region; + } + + /// + /// Calculates the unified coordinates a region needs to be placed at + /// + /// + /// Placement index indicating where in a frame the region will be located + /// + /// Width of the region in pixels + /// + /// Width of the border on the lower end of the coordinate range + /// + /// + /// Width of the border on the higher end of the coordinate range + /// + /// + /// Receives the target location of the region in unified coordinates + /// + /// + /// Receives the size of the region in unified coordinates + /// + private void CalculateRegionPlacement( + int placementIndex, int width, + int lowBorderWidth, int highBorderWidth, + ref UniScalar location, ref UniScalar size + ) + { + switch (placementIndex) + { + case -1: + { + // left or top + var gapWidth = lowBorderWidth - width; + + location.Fraction = 0.0f; + location.Offset = gapWidth; + size.Fraction = 0.0f; + size.Offset = width; + break; + } + case +1: + { + // right or bottom + location.Fraction = 1.0f; + location.Offset = -highBorderWidth; + size.Fraction = 0.0f; + size.Offset = width; + break; + } + case 0: + { + // stretch + location.Fraction = 0.0f; + location.Offset = lowBorderWidth; + size.Fraction = 1.0f; + size.Offset = -(highBorderWidth + lowBorderWidth); + break; + } + } + } + + /// Converts a horizontal placement string into a placement index + /// String containing the horizontal placement + /// A placement index that is equivalent to the provided string + private int GetHorizontalPlacementIndex(string placement) + { + switch (placement) + { + case "left": + { + return -1; + } + case "right": + { + return +1; + } + case "stretch": + default: + { + return 0; + } + } + } + + /// Converts a vertical placement string into a placement index + /// String containing the vertical placement + /// A placement index that is equivalent to the provided string + private int GetVerticalPlacementIndex(string placement) + { + switch (placement) + { + case "top": + { + return -1; + } + case "bottom": + { + return +1; + } + case "stretch": + default: + { + return 0; + } + } + } + + private Frame.Text ParseText(JToken token) + { + var text = new Frame.Text + { + Offset = new Point(token.Value("xoffset"), token.Value("yoffset")), + Color = ColorHelper.FromHex(token.Value("color")) + }; + + Enum.TryParse(token.Value("hplacement"), true, out text.HorizontalPlacement); + Enum.TryParse(token.Value("vplacement"), true, out text.VerticalPlacement); + text.Source = token.Value("font"); + + return text; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/IFlatControlRenderer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/IFlatControlRenderer.cs new file mode 100644 index 00000000..2ef31378 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/IFlatControlRenderer.cs @@ -0,0 +1,19 @@ +using MonoGame.Extended.NuclexGui.Controls; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat +{ + /// Interface for a class that renders a control + public interface IFlatControlRenderer + { + } + + /// Interface for a class responsible to render a specific control type + /// Type of control the implementation class will render + public interface IFlatControlRenderer : IFlatControlRenderer where TControlType : GuiControl + { + /// Renders the specified control using the provided graphics interface + /// Control that will be rendered + /// Graphics interface that will be used to draw the control + void Render(TControlType control, IFlatGuiGraphics graphics); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/IFlatGuiGraphics.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/IFlatGuiGraphics.cs new file mode 100644 index 00000000..11bacfe7 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/IFlatGuiGraphics.cs @@ -0,0 +1,73 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat +{ + /// Provides drawing methods for GUI controls + /// + /// Analogous to System.Drawing.Graphics, but provides specialized methods for + /// drawing a GUI with a dynamic, switchable theme. + /// + public interface IFlatGuiGraphics + { + /// Sets the clipping region for any future drawing commands + /// Clipping region that will be set + /// + /// An object that will unset the clipping region upon its destruction. + /// + /// + /// Clipping regions can be stacked, though this is not very typical for + /// a game GUI and also not recommended practice due to performance constraints. + /// Unless clipping is implemented in software, setting up a clip region + /// on current hardware requires the drawing queue to be flushed, negatively + /// impacting rendering performance (in technical terms, a clipping region + /// change likely causes 2 more DrawPrimitive() calls from the painter). + /// + IDisposable SetClipRegion(RectangleF clipRegion); + + /// Draws a GUI element onto the drawing buffer + /// Class of the element to draw + /// Region that will be covered by the drawn element + /// + /// + /// GUI elements are the basic building blocks of a GUI: + /// + /// + void DrawElement(string frameName, RectangleF bounds); + + /// Draws text into the drawing buffer for the specified element + /// Class of the element for which to draw text + /// Region that will be covered by the drawn element + /// Text that will be drawn + void DrawString(string frameName, RectangleF bounds, string text); + + void DrawImage(RectangleF bounds, Texture2D texture, Rectangle sourceRectangle); + + /// Draws a caret for text input at the specified index + /// Class of the element for which to draw a caret + /// Region that will be covered by the drawn element + /// Text for which a caret will be drawn + /// Index the caret will be drawn at + void DrawCaret(string frameName, RectangleF bounds, string text, int index); + + /// Measures the extents of a string in the frame's area + /// Class of the element whose text will be measured + /// Region that will be covered by the drawn element + /// Text that will be measured + /// + /// The size and extents of the specified string within the frame + /// + RectangleF MeasureString(string frameName, RectangleF bounds, string text); + + /// + /// Locates the closest gap between two letters to the provided position + /// + /// Class of the element in which to find the gap + /// Region that will be covered by the drawn element + /// Text in which the closest gap will be found + /// Position of which to determien the closest gap + /// The index of the gap the position is closest to + int GetClosestOpening(string frameName, RectangleF bounds, string text, Vector2 position); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/OpeningLocator.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/OpeningLocator.cs new file mode 100644 index 00000000..a00413c9 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/OpeningLocator.cs @@ -0,0 +1,96 @@ +using System.Text; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat +{ + /// + /// Locates the opening between characters in a string that is nearest + /// to a user-defined location + /// + /// + /// + /// This is a class rather than a static class to prevent garbage production + /// which would then have to be cleaned up again by the garbage collector. + /// If you create an instance of it and keep reusing it, garbage and allocation + /// will amortize. + /// + /// + /// The method used to calculate the openings seems to be not terribly accurate. + /// As of XNA 3.1, SpriteFonts don't do kerning, so the only thing left would be + /// a variable space appended to the end of characters. This could be compensated + /// for by always appending character with a known length for which no kerning is + /// possible, for example, the pipe sign (|). + /// + /// + internal class OpeningLocator + { + /// Used by GetClosestOpening() to avoid garbage production + private readonly StringBuilder _textBuilder; + + /// Initializes a new text opening locator + public OpeningLocator() + { + _textBuilder = new StringBuilder(64); + } + + /// + /// Locates the opening between two letters that is closest to + /// the specified position + /// + /// Font that opening search will use + /// Text that will be searched for the opening + /// X coordinate closest to which an opening will be found + /// The opening closest to the specified X coordinate + public int FindClosestOpening(SpriteFont font, string text, float x) + { + // Measure the size of the whole string + _textBuilder.Remove(0, _textBuilder.Length); + _textBuilder.Append(text); + var textSize = font.MeasureString(_textBuilder); + + // Run a binary search until to close in on the nearest opening + var left = 0; + var leftX = 0.0f; + var right = text.Length; + var rightX = textSize.X; + for (;;) + { + // Is the provided coordinate outside of our search range? + // -> Opening is to the far left or to the far right. + if (x <= leftX) + return left; + if (x >= rightX) + return right; + + // Do we have only one character left to check? + // -> Opening is either to its left or to its right. + if (right - left <= 1) + { + if (x - leftX <= rightX - x) + return left; + else return right; + } + + // The position of the opening is still not absolutely clear, cut the string + // in the middle of the search range so we can close in further. + var middle = (right + left)/2; + _textBuilder.Remove(middle, right - middle); + textSize = font.MeasureString(_textBuilder); + + // Depending on whether the searched-for position was on the left or right + // of our cut, adjust appropriate side and prepare for another run + if (x < textSize.X) + { + right = middle; + rightX = textSize.X; + } + else + { + _textBuilder.Append(text, middle, right - middle); + left = middle; + leftX = textSize.X; + } + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatButtonControlRenderer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatButtonControlRenderer.cs new file mode 100644 index 00000000..47a498cd --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatButtonControlRenderer.cs @@ -0,0 +1,58 @@ +using MonoGame.Extended.NuclexGui.Controls.Desktop; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat.Renderers +{ + /// Renders button controls in a traditional flat style + public class FlatButtonControlRenderer : IFlatControlRenderer + { + /// Names of the states the button control can be in + /// + /// Storing this as full strings instead of building them dynamically prevents + /// any garbage from forming during rendering. + /// + private static readonly string[] _states = + { + "button.disabled", + "button.normal", + "button.highlighted", + "button.depressed" + }; + + /// + /// Renders the specified control using the provided graphics interface + /// + /// Control that will be rendered + /// + /// Graphics interface that will be used to draw the control + /// + public void Render(GuiButtonControl control, IFlatGuiGraphics graphics) + { + var controlBounds = control.GetAbsoluteBounds(); + + // Determine the style to use for the button + var stateIndex = 0; + if (control.Enabled) + { + if (control.Depressed) + stateIndex = 3; + else + { + if (control.MouseHovering || control.HasFocus) + stateIndex = 2; + else stateIndex = 1; + } + } + + // Draw the button's frame + graphics.DrawElement(_states[stateIndex], controlBounds); + + // If there's image assigned to the button, draw it into the button + if (control.Texture != null) + graphics.DrawImage(controlBounds, control.Texture, control.SourceRectangle); + + // If there's text assigned to the button, draw it into the button + if (!string.IsNullOrEmpty(control.Text)) + graphics.DrawString(_states[stateIndex], controlBounds, control.Text); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatChoiceControlRenderer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatChoiceControlRenderer.cs new file mode 100644 index 00000000..1d0a4e59 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatChoiceControlRenderer.cs @@ -0,0 +1,71 @@ +using MonoGame.Extended.NuclexGui.Controls.Desktop; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat.Renderers +{ + /// Renders choice controls in a traditional flat style + public class FlatChoiceControlRenderer : IFlatControlRenderer + { + /// Names of the states the choice control can be in + /// + /// Storing this as full strings instead of building them dynamically prevents + /// any garbage from forming during rendering. + /// + private static readonly string[] _states = + { + "radio.off.disabled", + "radio.off.normal", + "radio.off.highlighted", + "radio.off.depressed", + "radio.on.disabled", + "radio.on.normal", + "radio.on.highlighted", + "radio.on.depressed" + }; + + /// + /// Renders the specified control using the provided graphics interface + /// + /// Control that will be rendered + /// + /// Graphics interface that will be used to draw the control + /// + public void Render(GuiChoiceControl control, IFlatGuiGraphics graphics) + { + // Determine the index of the state we're going to display + var stateIndex = control.Selected ? 4 : 0; + if (control.Enabled) + { + if (control.Depressed) + stateIndex += 3; + else + { + if (control.MouseHovering) + stateIndex += 2; + else stateIndex += 1; + } + } + + // Get the pixel coordinates of the region covered by the control on + // the screen + var controlBounds = control.GetAbsoluteBounds(); + var width = controlBounds.Width; + + // Now adjust the bounds to a square of height x height pixels so we can + // render the graphical portion of the choice control + controlBounds.Width = controlBounds.Height; + graphics.DrawElement(_states[stateIndex], controlBounds); + + // If the choice has text assigned to it, render it too + if (!string.IsNullOrEmpty(control.Text)) + { + // Restore the original width, then subtract the region that was covered by + // the graphical portion of the control. + controlBounds.Width = width - controlBounds.Height; + controlBounds.X += controlBounds.Height; + + // Draw the text that was assigned to the choice control + graphics.DrawString(_states[stateIndex], controlBounds, control.Text); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatHorizontalSliderControlRenderer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatHorizontalSliderControlRenderer.cs new file mode 100644 index 00000000..1407a625 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatHorizontalSliderControlRenderer.cs @@ -0,0 +1,37 @@ +using MonoGame.Extended.NuclexGui.Controls.Desktop; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat.Renderers +{ + /// Renders horizontal sliders in a traditional flat style + public class FlatHorizontalSliderControlRenderer : IFlatControlRenderer + { + /// + /// Renders the specified control using the provided graphics interface + /// + /// Control that will be rendered + /// + /// Graphics interface that will be used to draw the control + /// + public void Render(GuiHorizontalSliderControl control, IFlatGuiGraphics graphics + ) + { + var controlBounds = control.GetAbsoluteBounds(); + + var thumbWidth = controlBounds.Width*control.ThumbSize; + var thumbX = (controlBounds.Width - thumbWidth)*control.ThumbPosition; + + graphics.DrawElement("rail.horizontal", controlBounds); + + var thumbBounds = new RectangleF(controlBounds.X + thumbX, controlBounds.Y, thumbWidth, controlBounds.Height); + + if (control.ThumbDepressed) + graphics.DrawElement("slider.horizontal.depressed", thumbBounds); + else + { + if (control.MouseOverThumb) + graphics.DrawElement("slider.horizontal.highlighted", thumbBounds); + else graphics.DrawElement("slider.horizontal.normal", thumbBounds); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatInputControlRenderer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatInputControlRenderer.cs new file mode 100644 index 00000000..4cc45f14 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatInputControlRenderer.cs @@ -0,0 +1,100 @@ +using Microsoft.Xna.Framework; +using MonoGame.Extended.NuclexGui.Controls.Desktop; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat.Renderers +{ + /// Renders text input controls in a traditional flat style + public class FlatInputControlRenderer : IFlatControlRenderer, IOpeningLocator + { + /// Style from the skin this renderer uses + private const string _style = "input.normal"; + + // Otherwise the renderer could try to renderer when no frame is being drawn. + // Also, the renderer makes the assumption that all drawing happens through + // one graphics interface only. + + /// Graphics interface we used for the last draw call + private IFlatGuiGraphics _graphics; + + /// + /// Renders the specified control using the provided graphics interface + /// + /// Control that will be rendered + /// + /// Graphics interface that will be used to draw the control + /// + public void Render(GuiInputControl control, IFlatGuiGraphics graphics) + { + var controlBounds = control.GetAbsoluteBounds(); + + // Draw the control's frame and background + graphics.DrawElement(_style, controlBounds); + + using (graphics.SetClipRegion(controlBounds)) + { + var text = control.Text ?? string.Empty; + + // Amount by which the text will be moved within the input box in + // order to keep the caret in view even when the text is wider than + // the input box. + float left = 0; + + // Only scroll the text within the input box when it has the input + // focus and the caret is being shown. + if (control.HasFocus) + { + // Find out where the cursor is from the left end of the text + var stringSize = graphics.MeasureString( + _style, controlBounds, text.Substring(0, control.CaretPosition) + ); + + // Otherwise text will be visible over the frame, which might look bad + // if a skin uses a frame wider than 2 pixels or in a different color + // than the text. + while (stringSize.Width + left > controlBounds.Width) + left -= controlBounds.Width/10.0f; + } + + // Draw the text into the input box + controlBounds.X += left; + graphics.DrawString(_style, controlBounds, control.Text); + + // If the input box is in focus, also draw the caret so the user knows + // where characters will be inserted into the text. + if (control.HasFocus) + { + if (control.MillisecondsSinceLastCaretMovement%500 < 250) + { + graphics.DrawCaret( + "input.normal", controlBounds, control.Text, control.CaretPosition + ); + } + } + } + + // Let the control know that we can provide it with additional informations + // about how its text is being rendered + control.OpeningLocator = this; + _graphics = graphics; + } + + /// + /// Calculates which opening between two letters is closest to a position + /// + /// + /// Boundaries of the control, should be in absolute coordinates + /// + /// Text in which the opening will be looked for + /// + /// Position to which the closest opening will be found, + /// should be in absolute coordinates + /// + /// The index of the opening closest to the provided position + public int GetClosestOpening( + RectangleF bounds, string text, Vector2 position + ) + { + return _graphics.GetClosestOpening("input.normal", bounds, text, position); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatLabelControlRenderer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatLabelControlRenderer.cs new file mode 100644 index 00000000..22042376 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatLabelControlRenderer.cs @@ -0,0 +1,20 @@ +using MonoGame.Extended.NuclexGui.Controls; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat.Renderers +{ + /// Renders label controls in a traditional flat style + public class FlatLabelControlRenderer : IFlatControlRenderer + { + /// + /// Renders the specified control using the provided graphics interface + /// + /// Control that will be rendered + /// + /// Graphics interface that will be used to draw the control + /// + public void Render(GuiLabelControl control, IFlatGuiGraphics graphics) + { + graphics.DrawString("label", control.GetAbsoluteBounds(), control.Text); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatListControlRenderer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatListControlRenderer.cs new file mode 100644 index 00000000..026fe10b --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatListControlRenderer.cs @@ -0,0 +1,130 @@ +using System; +using MonoGame.Extended.NuclexGui.Controls.Desktop; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat.Renderers +{ + /// Renders text input controls in a traditional flat style + public class FlatListControlRenderer : IFlatControlRenderer, IListRowLocator + { + /// Style used to draw this control + private const string _style = "list"; + + // Otherwise the renderer could try to renderer when no frame is being drawn. + // Also, this way the renderer makes the assumption that all drawing happens + // through one graphics interface only. + + /// Graphics interface we used for the last draw call + private IFlatGuiGraphics _graphics; + + /// Height of a single row in the list + private float _rowHeight = float.NaN; + + /// + /// Renders the specified control using the provided graphics interface + /// + /// Control that will be rendered + /// + /// Graphics interface that will be used to draw the control + /// + public void Render(GuiListControl control, IFlatGuiGraphics graphics) + { + _graphics = graphics; + + var controlBounds = control.GetAbsoluteBounds(); + + graphics.DrawElement(_style, controlBounds); + + // Cache the number of items in the list (as a float, this comes in handy later) + // and the height of a single item when rendered + float totalItems = control.Items.Count; + var rowHeight = GetRowHeight(controlBounds); + + // Number of items (+fraction) fitting into the list's height + var itemsInView = controlBounds.Height/rowHeight; + + // Number of items by which the slider can move up and down + var scrollableArea = Math.Max(totalItems - itemsInView, 0.0f); + + // Index (+fraction) of the item at the top of the list given + // the slider's current position + var scrollPosition = control.Slider.ThumbPosition*scrollableArea; + + // Determine the first and the last item we need to draw + // (no need to draw the whole of the list when only a small subset + // will end up in the clipping area) + var firstItem = (int) scrollPosition; + var lastItem = (int) Math.Ceiling(scrollPosition + itemsInView); + lastItem = Math.Min(lastItem, control.Items.Count); + + // Set up a rectangle we can use to track the bounds of the item + // currently being rendered + var itemBounds = controlBounds; + itemBounds.Y -= (scrollPosition - firstItem)*rowHeight; + itemBounds.Height = rowHeight; + + using (graphics.SetClipRegion(controlBounds)) + { + for (var item = firstItem; item < lastItem; ++item) + { + if (control.SelectedItems.Contains(item)) + graphics.DrawElement("list.selection", itemBounds); + + graphics.DrawString(_style, itemBounds, control.Items[item]); + itemBounds.Y += rowHeight; + } + } + + control.ListRowLocator = this; + } + + /// Calculates the list row the cursor is in + /// + /// Boundaries of the control, should be in absolute coordinates + /// + /// + /// Position of the thumb in the list's slider + /// + /// + /// Number of items contained in the list + /// + /// Vertical position of the cursor + /// The row the cursor is over + public int GetRow(RectangleF bounds, float thumbPosition, int itemCount, float y) + { + float totalItems = itemCount; + var rowHeight = GetRowHeight(bounds); + + // Number of items (+fraction) fitting into the list's height + var itemsInView = bounds.Height/rowHeight; + + // Number of items by which the slider can move up and down + var scrollableArea = totalItems - itemsInView; + + // Index (+fraction) of the item at the top of the list given + // the slider's current position + var scrollPosition = thumbPosition*scrollableArea; + + // Calculate the item that should be under the requested Y coordinate + return (int) (y/GetRowHeight(bounds) + scrollPosition); + } + + /// Determines the height of a row displayed in the list + /// + /// Boundaries of the control, should be in absolute coordinates + /// + /// The height of a single row in the list + public float GetRowHeight(RectangleF bounds) + { + // The code below is not optimal, but the XNA SpriteFont isn't very talkative + // when it comes to providing informations about itself ;) + + if (float.IsNaN(_rowHeight)) + { + _rowHeight = _graphics.MeasureString("list", bounds, "qyjpMAW!").Height; + _rowHeight += 2.0f; + } + + return _rowHeight; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatOptionControlRenderer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatOptionControlRenderer.cs new file mode 100644 index 00000000..de864ac9 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatOptionControlRenderer.cs @@ -0,0 +1,71 @@ +using MonoGame.Extended.NuclexGui.Controls.Desktop; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat.Renderers +{ + /// Renders option controls in a traditional flat style + public class FlatOptionControlRenderer : IFlatControlRenderer + { + /// Names of the states the option control can be in + /// + /// Storing this as full strings instead of building them dynamically prevents + /// any garbage from forming during rendering. + /// + private static readonly string[] _states = + { + "check.off.disabled", + "check.off.normal", + "check.off.highlighted", + "check.off.depressed", + "check.on.disabled", + "check.on.normal", + "check.on.highlighted", + "check.on.depressed" + }; + + /// + /// Renders the specified control using the provided graphics interface + /// + /// Control that will be rendered + /// + /// Graphics interface that will be used to draw the control + /// + public void Render(GuiOptionControl control, IFlatGuiGraphics graphics) + { + // Determine the index of the state we're going to display + var stateIndex = control.Selected ? 4 : 0; + if (control.Enabled) + { + if (control.Depressed) + stateIndex += 3; + else + { + if (control.MouseHovering) + stateIndex += 2; + else stateIndex += 1; + } + } + + // Get the pixel coordinates of the region covered by the control on + // the screen + var controlBounds = control.GetAbsoluteBounds(); + var width = controlBounds.Width; + + // Now adjust the bounds to a square of height x height pixels so we can + // render the graphical portion of the option control + controlBounds.Width = controlBounds.Height; + graphics.DrawElement(_states[stateIndex], controlBounds); + + // If the option has text assigned to it, render it too + if (control.Text != null) + { + // Restore the original width, then subtract the region that was covered by + // the graphical portion of the control. + controlBounds.Width = width - controlBounds.Height; + controlBounds.X += controlBounds.Height; + + // Draw the text that was assigned to the option control + graphics.DrawString(_states[stateIndex], controlBounds, control.Text); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatProgressControlRenderer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatProgressControlRenderer.cs new file mode 100644 index 00000000..10d877c6 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatProgressControlRenderer.cs @@ -0,0 +1,24 @@ +using MonoGame.Extended.NuclexGui.Controls; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat.Renderers +{ + /// Renders progress bars in a traditional flat style + public class FlatProgressControlRenderer : IFlatControlRenderer + { + /// + /// Renders the specified control using the provided graphics interface + /// + /// Control that will be rendered + /// + /// Graphics interface that will be used to draw the control + /// + public void Render(GuiProgressControl control, IFlatGuiGraphics graphics) + { + var controlBounds = control.GetAbsoluteBounds(); + graphics.DrawElement("progress", controlBounds); + + controlBounds.Width *= control.Progress; + graphics.DrawElement("progress.bar", controlBounds); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatVerticalSliderControlRenderer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatVerticalSliderControlRenderer.cs new file mode 100644 index 00000000..d1975ad6 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatVerticalSliderControlRenderer.cs @@ -0,0 +1,40 @@ +using MonoGame.Extended.NuclexGui.Controls.Desktop; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat.Renderers +{ + /// Renders sliders in a traditional flat style + public class FlatVerticalSliderControlRenderer : IFlatControlRenderer + { + /// + /// Renders the specified control using the provided graphics interface + /// + /// Control that will be rendered + /// + /// Graphics interface that will be used to draw the control + /// + public void Render( + GuiVerticalSliderControl control, IFlatGuiGraphics graphics + ) + { + var controlBounds = control.GetAbsoluteBounds(); + + var thumbHeight = controlBounds.Height*control.ThumbSize; + var thumbY = (controlBounds.Height - thumbHeight)*control.ThumbPosition; + + graphics.DrawElement("rail.vertical", controlBounds); + + var thumbBounds = new RectangleF( + controlBounds.X, controlBounds.Y + thumbY, controlBounds.Width, thumbHeight + ); + + if (control.ThumbDepressed) + graphics.DrawElement("slider.vertical.depressed", thumbBounds); + else + { + if (control.MouseOverThumb) + graphics.DrawElement("slider.vertical.highlighted", thumbBounds); + else graphics.DrawElement("slider.vertical.normal", thumbBounds); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatWindowControlRenderer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatWindowControlRenderer.cs new file mode 100644 index 00000000..22e575d3 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/Renderers/FlatWindowControlRenderer.cs @@ -0,0 +1,24 @@ +using MonoGame.Extended.NuclexGui.Controls.Desktop; + +namespace MonoGame.Extended.NuclexGui.Visuals.Flat.Renderers +{ + /// Renders window controls in a traditional flat style + public class FlatWindowControlRenderer : IFlatControlRenderer + { + /// + /// Renders the specified control using the provided graphics interface + /// + /// Control that will be rendered + /// + /// Graphics interface that will be used to draw the control + /// + public void Render(GuiWindowControl control, IFlatGuiGraphics graphics) + { + var controlBounds = control.GetAbsoluteBounds(); + graphics.DrawElement("window", controlBounds); + + if (control.Title != null) + graphics.DrawString("window", controlBounds, control.Title); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/IGuiVisualizer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/IGuiVisualizer.cs new file mode 100644 index 00000000..973a7a2a --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/IGuiVisualizer.cs @@ -0,0 +1,10 @@ +namespace MonoGame.Extended.NuclexGui.Visuals +{ + /// Interface for an exchangeable GUI painter + public interface IGuiVisualizer + { + /// Renders an entire control tree starting at the provided control + /// Screen containing the GUI that will be drawn + void Draw(GuiScreen screen); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.NuclexGui/packages.config b/Source/MonoGame.Extended.NuclexGui/packages.config new file mode 100644 index 00000000..43f6cc68 --- /dev/null +++ b/Source/MonoGame.Extended.NuclexGui/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Particles.nuspec b/Source/MonoGame.Extended.Particles.nuspec new file mode 100644 index 00000000..36aebfe9 --- /dev/null +++ b/Source/MonoGame.Extended.Particles.nuspec @@ -0,0 +1,33 @@ + + + + + MonoGame.Extended.Particles + $version$ + + A high performance particle system to make MonoGame more awesome. + + Dylan Wilson + MonoGame.Extended.Particles + Craftwork Games + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE + https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png + false + + Copyright 2017 - Craftwork Games + monogame extended particle system + + + + + + + + + + + + + + diff --git a/Source/MonoGame.Extended/Particles/ColorExtensions.cs b/Source/MonoGame.Extended.Particles/ColorExtensions.cs similarity index 54% rename from Source/MonoGame.Extended/Particles/ColorExtensions.cs rename to Source/MonoGame.Extended.Particles/ColorExtensions.cs index 509887b1..1d4b4d65 100644 --- a/Source/MonoGame.Extended/Particles/ColorExtensions.cs +++ b/Source/MonoGame.Extended.Particles/ColorExtensions.cs @@ -14,40 +14,40 @@ namespace MonoGame.Extended.Particles if (s == 0f) return new Color(l, l, l); - h = h / 360f; - var max = l < 0.5f ? l * (1 + s) : (l + s) - (l * s); - var min = 2f * l - max; + h = h/360f; + var max = l < 0.5f ? l*(1 + s) : l + s - l*s; + var min = 2f*l - max; return new Color( - ComponentFromHue(min, max, h + 1f / 3f), + ComponentFromHue(min, max, h + 1f/3f), ComponentFromHue(min, max, h), - ComponentFromHue(min, max, h - 1f / 3f)); + ComponentFromHue(min, max, h - 1f/3f)); } private static float ComponentFromHue(float m1, float m2, float h) { - h = (h + 1f) % 1f; - if (h * 6f < 1) - return m1 + (m2 - m1) * 6f * h; - if (h * 2 < 1) + h = (h + 1f)%1f; + if (h*6f < 1) + return m1 + (m2 - m1)*6f*h; + if (h*2 < 1) return m2; - if (h * 3 < 2) - return m1 + (m2 - m1) * (2f / 3f - h) * 6f; + if (h*3 < 2) + return m1 + (m2 - m1)*(2f/3f - h)*6f; return m1; } public static HslColor ToHsl(this Color c) { - var r = c.R / 255f; - var b = c.B / 255f; - var g = c.G / 255f; + var r = c.R/255f; + var b = c.B/255f; + var g = c.G/255f; var max = Math.Max(Math.Max(r, g), b); var min = Math.Min(Math.Min(r, g), b); var chroma = max - min; var sum = max + min; - var l = sum * 0.5f; + var l = sum*0.5f; if (chroma == 0) return new HslColor(0f, 0f, l); @@ -55,15 +55,18 @@ namespace MonoGame.Extended.Particles float h; if (r == max) - h = (60 * (g - b) / chroma + 360) % 360; - else if (g == max) - h = 60 * (b - r) / chroma + 120f; + h = (60*(g - b)/chroma + 360)%360; else - h = 60 * (r - g) / chroma + 240f; + { + if (g == max) + h = 60*(b - r)/chroma + 120f; + else + h = 60*(r - g)/chroma + 240f; + } - var s = l <= 0.5f ? chroma / sum : chroma / (2f - sum); + var s = l <= 0.5f ? chroma/sum : chroma/(2f - sum); return new HslColor(h, s, l); } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Particles/FastRandomExtensions.cs b/Source/MonoGame.Extended.Particles/FastRandomExtensions.cs new file mode 100644 index 00000000..f5e8ef71 --- /dev/null +++ b/Source/MonoGame.Extended.Particles/FastRandomExtensions.cs @@ -0,0 +1,15 @@ +namespace MonoGame.Extended.Particles +{ + public static class FastRandomExtensions + { + public static void NextColor(this FastRandom random, out HslColor color, Range range) + { + var maxH = range.Max.H >= range.Min.H + ? range.Max.H + : range.Max.H + 360; + color = new HslColor(random.NextSingle(range.Min.H, maxH), + random.NextSingle(range.Min.S, range.Max.S), + random.NextSingle(range.Min.L, range.Max.L)); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/HslColor.cs b/Source/MonoGame.Extended.Particles/HslColor.cs similarity index 53% rename from Source/MonoGame.Extended/Particles/HslColor.cs rename to Source/MonoGame.Extended.Particles/HslColor.cs index 642f95b4..f9343727 100644 --- a/Source/MonoGame.Extended/Particles/HslColor.cs +++ b/Source/MonoGame.Extended.Particles/HslColor.cs @@ -5,34 +5,34 @@ using Microsoft.Xna.Framework; namespace MonoGame.Extended.Particles { /// - /// An immutable data structure representing a 24bit color composed of separate hue, saturation and lightness channels. + /// An immutable data structure representing a 24bit color composed of separate hue, saturation and lightness channels. /// //[Serializable] - public struct HslColor : IEquatable + public struct HslColor : IEquatable, IComparable { /// - /// Gets the value of the hue channel in degrees. + /// Gets the value of the hue channel in degrees. /// - public float H { get; } - - /// - /// Gets the value of the saturation channel. - /// - public float S { get; } + public readonly float H; /// - /// Gets the value of the lightness channel. + /// Gets the value of the saturation channel. /// - public float L { get; } + public readonly float S; + + /// + /// Gets the value of the lightness channel. + /// + public readonly float L; private static float NormalizeHue(float h) { - if (h < 0) return h + 360 * ((int)(h / 360) + 1); - return h % 360; + if (h < 0) return h + 360*((int) (h/360) + 1); + return h%360; } /// - /// Initializes a new instance of the structure. + /// Initializes a new instance of the structure. /// /// The value of the hue channel. /// The value of the saturation channel. @@ -46,7 +46,7 @@ namespace MonoGame.Extended.Particles } /// - /// Copies the individual channels of the color to the specified memory location. + /// Copies the individual channels of the color to the specified memory location. /// /// The memory location to copy the axis to. public void CopyTo(out HslColor destination) @@ -55,7 +55,7 @@ namespace MonoGame.Extended.Particles } /// - /// Destructures the color, exposing the individual channels. + /// Destructures the color, exposing the individual channels. /// public void Destructure(out float h, out float s, out float l) { @@ -65,11 +65,11 @@ namespace MonoGame.Extended.Particles } /// - /// Exposes the individual channels of the color to the specified matching function. + /// Exposes the individual channels of the color to the specified matching function. /// /// The function which matches the individual channels of the color. /// - /// Thrown if the value passed to the parameter is null. + /// Thrown if the value passed to the parameter is null. /// public void Match(Action callback) { @@ -80,18 +80,18 @@ namespace MonoGame.Extended.Particles } /// - /// Exposes the individual channels of the color to the specified mapping function and returns the - /// result; + /// Exposes the individual channels of the color to the specified mapping function and returns the + /// result; /// /// The type being mapped to. /// - /// A function which maps the color channels to an instance of . + /// A function which maps the color channels to an instance of . /// /// - /// The result of the function when passed the individual X and Y components. + /// The result of the function when passed the individual X and Y components. /// /// - /// Thrown if the value passed to the parameter is null. + /// Thrown if the value passed to the parameter is null. /// public T Map(Func map) { @@ -101,40 +101,52 @@ namespace MonoGame.Extended.Particles return map(H, S, L); } + public static HslColor operator +(HslColor a, HslColor b) + { + return new HslColor(a.H + b.H, a.S + b.S, a.L + b.L); + } + + public int CompareTo(HslColor other) + { + // ReSharper disable ImpureMethodCallOnReadonlyValueField + return H.CompareTo(other.H)*100 + S.CompareTo(other.S)*10 + L.CompareTo(L); + // ReSharper restore ImpureMethodCallOnReadonlyValueField + } + /// - /// Determines whether the specified is equal to this instance. + /// Determines whether the specified is equal to this instance. /// - /// The to compare with this instance. + /// The to compare with this instance. /// - /// true if the specified is equal to this instance; otherwise, false. + /// true if the specified is equal to this instance; otherwise, false. /// public override bool Equals(object obj) { if (obj is HslColor) - return Equals((HslColor)obj); + return Equals((HslColor) obj); return base.Equals(obj); } /// - /// Determines whether the specified is equal to this instance. + /// Determines whether the specified is equal to this instance. /// - /// The to compare with this instance. + /// The to compare with this instance. /// - /// true if the specified is equal to this instance; otherwise, false. + /// true if the specified is equal to this instance; otherwise, false. /// public bool Equals(HslColor value) { - return H.Equals(value.H) && - S.Equals(value.S) && - L.Equals(value.L); + // ReSharper disable ImpureMethodCallOnReadonlyValueField + return H.Equals(value.H) && S.Equals(value.S) && L.Equals(value.L); + // ReSharper restore ImpureMethodCallOnReadonlyValueField } /// - /// Returns a hash code for this instance. + /// Returns a hash code for this instance. /// /// - /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. /// public override int GetHashCode() { @@ -144,34 +156,34 @@ namespace MonoGame.Extended.Particles } /// - /// Returns a that represents this instance. + /// Returns a that represents this instance. /// /// - /// A that represents this instance. + /// A that represents this instance. /// public override string ToString() { - return string.Format(CultureInfo.InvariantCulture, "{0}°,{1:P0},{2:P0}", - H.ToString("F1"), (100 * S).ToString("F1"), (100 * L).ToString("F1")); + return string.Format(CultureInfo.InvariantCulture, "H:{0:N1}° S:{1:N1} L:{2:N1}", + H, 100*S, 100*L); } public static HslColor Parse(string s) { var hsl = s.Split(','); - var hue = float.Parse(hsl[0].TrimEnd('°')); - var sat = float.Parse(hsl[1]); - var lig = float.Parse(hsl[2]); + var hue = float.Parse(hsl[0].TrimEnd('°'), CultureInfo.InvariantCulture.NumberFormat); + var sat = float.Parse(hsl[1], CultureInfo.InvariantCulture.NumberFormat); + var lig = float.Parse(hsl[2], CultureInfo.InvariantCulture.NumberFormat); return new HslColor(hue, sat, lig); } /// - /// Implements the operator ==. + /// Implements the operator ==. /// /// The lvalue. /// The rvalue. /// - /// true if the lvalue is equal to the rvalue; otherwise, false. + /// true if the lvalue is equal to the rvalue; otherwise, false. /// public static bool operator ==(HslColor x, HslColor y) { @@ -179,12 +191,12 @@ namespace MonoGame.Extended.Particles } /// - /// Implements the operator !=. + /// Implements the operator !=. /// /// The lvalue. /// The rvalue. /// - /// true if the lvalue is not equal to the rvalue; otherwise, false. + /// true if the lvalue is not equal to the rvalue; otherwise, false. /// public static bool operator !=(HslColor x, HslColor y) { @@ -201,9 +213,9 @@ namespace MonoGame.Extended.Particles // loop around if c2.H < c1.H var h2 = c2.H >= c1.H ? c2.H : c2.H + 360; return new HslColor( - c1.H + t * (h2 - c1.H), - c1.S + t * (c2.S - c1.S), - c1.L + t * (c2.L - c2.L)); + c1.H + t*(h2 - c1.H), + c1.S + t*(c2.S - c1.S), + c1.L + t*(c2.L - c2.L)); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/LineSegment.cs b/Source/MonoGame.Extended.Particles/LineSegment.cs similarity index 54% rename from Source/MonoGame.Extended/Particles/LineSegment.cs rename to Source/MonoGame.Extended.Particles/LineSegment.cs index 5edfe8ea..a3c14226 100644 --- a/Source/MonoGame.Extended/Particles/LineSegment.cs +++ b/Source/MonoGame.Extended.Particles/LineSegment.cs @@ -5,7 +5,7 @@ using Microsoft.Xna.Framework; namespace MonoGame.Extended.Particles { /// - /// Defines a part of a line that is bounded by two distinct end points. + /// Defines a part of a line that is bounded by two distinct end points. /// [StructLayout(LayoutKind.Sequential)] public struct LineSegment : IEquatable @@ -14,7 +14,7 @@ namespace MonoGame.Extended.Particles internal readonly Vector2 _point2; /// - /// Initializes a new instance of the structure. + /// Initializes a new instance of the structure. /// /// /// @@ -29,12 +29,12 @@ namespace MonoGame.Extended.Particles public Vector2 Origin => _point1; - public Axis Direction + public Vector2 Direction { get { var coord = _point2 - _point1; - return new Axis(coord.X, coord.Y); + return new Vector2(coord.X, coord.Y); } } @@ -49,36 +49,11 @@ namespace MonoGame.Extended.Particles return new Vector2(t.X, t.Y); } - public unsafe void CopyTo(float* destination) - { - _point1.CopyTo(destination); - _point2.CopyTo(destination + sizeof(Vector2)); - } - - public void Destructure(out Vector2 point1, out Vector2 point2) - { - point1 = _point1; - point2 = _point2; - } - - public void Match(Action callback) - { - if (callback == null) - throw new ArgumentNullException(nameof(callback)); - } - - public T Map(Func map) - { - if (map == null) - throw new ArgumentNullException(nameof(map)); - - return map(_point1, _point2); - } - public bool Equals(LineSegment other) { - return _point1.Equals(other._point1) && - _point2.Equals(other._point2); + // ReSharper disable ImpureMethodCallOnReadonlyValueField + return _point1.Equals(other._point1) && _point2.Equals(other._point2); + // ReSharper restore ImpureMethodCallOnReadonlyValueField } public override bool Equals(object obj) @@ -86,21 +61,17 @@ namespace MonoGame.Extended.Particles if (ReferenceEquals(null, obj)) return false; - return obj is LineSegment & Equals((LineSegment)obj); + return obj is LineSegment & Equals((LineSegment) obj); } public override int GetHashCode() { - var hashCode = _point1.GetHashCode(); - - hashCode = (hashCode * 397) ^ _point2.GetHashCode(); - - return hashCode; + return (_point1.GetHashCode()*397) ^ _point2.GetHashCode(); } public override string ToString() { - return $"({_point1.X}:{_point1.Y},{_point2.X}:{_point2.Y})"; + return $"({_point1.X}:{_point1.Y} {_point2.X}:{_point2.Y})"; } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Particles/Modifiers/AgeModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/AgeModifier.cs new file mode 100644 index 00000000..3852dd66 --- /dev/null +++ b/Source/MonoGame.Extended.Particles/Modifiers/AgeModifier.cs @@ -0,0 +1,23 @@ +using MonoGame.Extended.Particles.Modifiers.Interpolators; + +namespace MonoGame.Extended.Particles.Modifiers +{ + public class AgeModifier : IModifier + { + public IInterpolator[] Interpolators { get; set; } + + public unsafe void Update(float elapsedSeconds, ParticleBuffer.ParticleIterator iterator) + { + var n = Interpolators.Length; + while (iterator.HasNext) + { + var particle = iterator.Next(); + for (var i = 0; i < n; i++) + { + var interpolator = Interpolators[i]; + interpolator.Update(particle->Age, particle); + } + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Modifiers/Containers/CircleContainerModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/Containers/CircleContainerModifier.cs similarity index 81% rename from Source/MonoGame.Extended/Particles/Modifiers/Containers/CircleContainerModifier.cs rename to Source/MonoGame.Extended.Particles/Modifiers/Containers/CircleContainerModifier.cs index 29f30b9d..f3890cce 100644 --- a/Source/MonoGame.Extended/Particles/Modifiers/Containers/CircleContainerModifier.cs +++ b/Source/MonoGame.Extended.Particles/Modifiers/Containers/CircleContainerModifier.cs @@ -11,14 +11,15 @@ namespace MonoGame.Extended.Particles.Modifiers.Containers public unsafe void Update(float elapsedSeconds, ParticleBuffer.ParticleIterator iterator) { - var radiusSq = Radius * Radius; + var radiusSq = Radius*Radius; while (iterator.HasNext) { var particle = iterator.Next(); var localPos = particle->Position - particle->TriggerPos; var distSq = localPos.LengthSquared(); - var normal = localPos.ToAxis().ToVector2(); + var normal = localPos; + normal.Normalize(); if (Inside) { @@ -32,21 +33,20 @@ namespace MonoGame.Extended.Particles.Modifiers.Containers SetReflected(distSq, particle, -normal); } - } } private unsafe void SetReflected(float distSq, Particle* particle, Vector2 normal) { - var dist = (float)Math.Sqrt(distSq); + var dist = (float) Math.Sqrt(distSq); var d = dist - Radius; // how far outside the circle is the particle - var twoRestDot = 2 * RestitutionCoefficient * + var twoRestDot = 2*RestitutionCoefficient* Vector2.Dot(particle->Velocity, normal); - particle->Velocity -= twoRestDot * normal; + particle->Velocity -= twoRestDot*normal; // exact computation requires sqrt or goniometrics - particle->Position -= normal * d; + particle->Position -= normal*d; } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Modifiers/Containers/RectangleContainerModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/Containers/RectangleContainerModifier.cs similarity index 56% rename from Source/MonoGame.Extended/Particles/Modifiers/Containers/RectangleContainerModifier.cs rename to Source/MonoGame.Extended.Particles/Modifiers/Containers/RectangleContainerModifier.cs index c3e93ad6..375f5f73 100644 --- a/Source/MonoGame.Extended/Particles/Modifiers/Containers/RectangleContainerModifier.cs +++ b/Source/MonoGame.Extended.Particles/Modifiers/Containers/RectangleContainerModifier.cs @@ -10,41 +10,46 @@ namespace MonoGame.Extended.Particles.Modifiers.Containers public unsafe void Update(float elapsedSeconds, ParticleBuffer.ParticleIterator iterator) { - while (iterator.HasNext) { var particle = iterator.Next(); - var left = particle->TriggerPos.X + Width * -0.5f; - var right = particle->TriggerPos.X + Width * 0.5f; - var top = particle->TriggerPos.Y + Height * -0.5f; - var bottom = particle->TriggerPos.Y + Height * 0.5f; + var left = particle->TriggerPos.X + Width*-0.5f; + var right = particle->TriggerPos.X + Width*0.5f; + var top = particle->TriggerPos.Y + Height*-0.5f; + var bottom = particle->TriggerPos.Y + Height*0.5f; var xPos = particle->Position.X; var xVel = particle->Velocity.X; var yPos = particle->Position.Y; var yVel = particle->Velocity.Y; - if ((int)particle->Position.X < left) + if ((int) particle->Position.X < left) { xPos = left + (left - xPos); - xVel = -xVel * RestitutionCoefficient; + xVel = -xVel*RestitutionCoefficient; } - else if (particle->Position.X > right) + else { - xPos = right - (xPos - right); - xVel = -xVel * RestitutionCoefficient; + if (particle->Position.X > right) + { + xPos = right - (xPos - right); + xVel = -xVel*RestitutionCoefficient; + } } if (particle->Position.Y < top) { yPos = top + (top - yPos); - yVel = -yVel * RestitutionCoefficient; + yVel = -yVel*RestitutionCoefficient; } - else if ((int)particle->Position.Y > bottom) + else { - yPos = bottom - (yPos - bottom); - yVel = -yVel * RestitutionCoefficient; + if ((int) particle->Position.Y > bottom) + { + yPos = bottom - (yPos - bottom); + yVel = -yVel*RestitutionCoefficient; + } } particle->Position = new Vector2(xPos, yPos); particle->Velocity = new Vector2(xVel, yVel); diff --git a/Source/MonoGame.Extended/Particles/Modifiers/Containers/RectangleLoopContainerModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/Containers/RectangleLoopContainerModifier.cs similarity index 54% rename from Source/MonoGame.Extended/Particles/Modifiers/Containers/RectangleLoopContainerModifier.cs rename to Source/MonoGame.Extended.Particles/Modifiers/Containers/RectangleLoopContainerModifier.cs index 80c6d344..62c44d7f 100644 --- a/Source/MonoGame.Extended/Particles/Modifiers/Containers/RectangleLoopContainerModifier.cs +++ b/Source/MonoGame.Extended.Particles/Modifiers/Containers/RectangleLoopContainerModifier.cs @@ -12,30 +12,28 @@ namespace MonoGame.Extended.Particles.Modifiers.Containers while (iterator.HasNext) { var particle = iterator.Next(); - var left = particle->TriggerPos.X + Width * -0.5f; - var right = particle->TriggerPos.X + Width * 0.5f; - var top = particle->TriggerPos.Y + Height * -0.5f; - var bottom = particle->TriggerPos.Y + Height * 0.5f; + var left = particle->TriggerPos.X + Width*-0.5f; + var right = particle->TriggerPos.X + Width*0.5f; + var top = particle->TriggerPos.Y + Height*-0.5f; + var bottom = particle->TriggerPos.Y + Height*0.5f; var xPos = particle->Position.X; var yPos = particle->Position.Y; - if ((int)particle->Position.X < left) - { + if ((int) particle->Position.X < left) xPos = particle->Position.X + Width; - } - else if ((int)particle->Position.X > right) + else { - xPos = particle->Position.X - Width; + if ((int) particle->Position.X > right) + xPos = particle->Position.X - Width; } - if ((int)particle->Position.Y < top) - { + if ((int) particle->Position.Y < top) yPos = particle->Position.Y + Height; - } - else if ((int)particle->Position.Y > bottom) + else { - yPos = particle->Position.Y - Height; + if ((int) particle->Position.Y > bottom) + yPos = particle->Position.Y - Height; } particle->Position = new Vector2(xPos, yPos); } diff --git a/Source/MonoGame.Extended/Particles/Modifiers/DragModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/DragModifier.cs similarity index 69% rename from Source/MonoGame.Extended/Particles/Modifiers/DragModifier.cs rename to Source/MonoGame.Extended.Particles/Modifiers/DragModifier.cs index 3091ab17..b75bdbf7 100644 --- a/Source/MonoGame.Extended/Particles/Modifiers/DragModifier.cs +++ b/Source/MonoGame.Extended.Particles/Modifiers/DragModifier.cs @@ -12,11 +12,11 @@ namespace MonoGame.Extended.Particles.Modifiers while (iterator.HasNext) { var particle = iterator.Next(); - var drag = -DragCoefficient * Density * particle->Mass * elapsedSeconds; + var drag = -DragCoefficient*Density*particle->Mass*elapsedSeconds; particle->Velocity = new Vector2( - particle->Velocity.X + particle->Velocity.X * drag, - particle->Velocity.Y + particle->Velocity.Y * drag); + particle->Velocity.X + particle->Velocity.X*drag, + particle->Velocity.Y + particle->Velocity.Y*drag); } } } diff --git a/Source/MonoGame.Extended/Particles/Modifiers/IModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/IModifier.cs similarity index 100% rename from Source/MonoGame.Extended/Particles/Modifiers/IModifier.cs rename to Source/MonoGame.Extended.Particles/Modifiers/IModifier.cs diff --git a/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/ColorInterpolator.cs b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/ColorInterpolator.cs new file mode 100644 index 00000000..20e46f0b --- /dev/null +++ b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/ColorInterpolator.cs @@ -0,0 +1,23 @@ +namespace MonoGame.Extended.Particles.Modifiers.Interpolators +{ + /// + /// Defines a modifier which interpolates the color of a particle over the course of its lifetime. + /// + public sealed class ColorInterpolator : IInterpolator + { + /// + /// Gets or sets the initial color of particles when they are released. + /// + public HslColor InitialColor { get; set; } + + /// + /// Gets or sets the final color of particles when they are retired. + /// + public HslColor FinalColor { get; set; } + + public unsafe void Update(float amount, Particle* particle) + { + particle->Color = HslColor.Lerp(InitialColor, FinalColor, amount); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/HueInterpolator.cs b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/HueInterpolator.cs new file mode 100644 index 00000000..b9950bd1 --- /dev/null +++ b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/HueInterpolator.cs @@ -0,0 +1,22 @@ +namespace MonoGame.Extended.Particles.Modifiers.Interpolators +{ + public class HueInterpolator : IInterpolator + { + private float _delta; + public float StartValue { get; set; } + + public float EndValue + { + get { return _delta + StartValue; } + set { _delta = value - StartValue; } + } + + public unsafe void Update(float amount, Particle* particle) + { + particle->Color = new HslColor( + amount*_delta + StartValue, + particle->Color.S, + particle->Color.L); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/IInterpolator.cs b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/IInterpolator.cs new file mode 100644 index 00000000..617f1ff5 --- /dev/null +++ b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/IInterpolator.cs @@ -0,0 +1,7 @@ +namespace MonoGame.Extended.Particles.Modifiers.Interpolators +{ + public interface IInterpolator + { + unsafe void Update(float amount, Particle* particle); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/OpacityInterpolator.cs b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/OpacityInterpolator.cs new file mode 100644 index 00000000..0a10f6ab --- /dev/null +++ b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/OpacityInterpolator.cs @@ -0,0 +1,19 @@ +namespace MonoGame.Extended.Particles.Modifiers.Interpolators +{ + public class OpacityInterpolator : IInterpolator + { + private float _delta; + public float StartValue { get; set; } + + public float EndValue + { + get { return _delta + StartValue; } + set { _delta = value - StartValue; } + } + + public unsafe void Update(float amount, Particle* particle) + { + particle->Opacity = _delta*amount + StartValue; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/RotationInterpolator.cs b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/RotationInterpolator.cs new file mode 100644 index 00000000..8d7d0c74 --- /dev/null +++ b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/RotationInterpolator.cs @@ -0,0 +1,19 @@ +namespace MonoGame.Extended.Particles.Modifiers.Interpolators +{ + public class RotationInterpolator : IInterpolator + { + private float _delta; + public float StartValue { get; set; } + + public float EndValue + { + get { return _delta + StartValue; } + set { _delta = value - StartValue; } + } + + public unsafe void Update(float amount, Particle* particle) + { + particle->Rotation = amount*_delta + StartValue; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/ScaleInterpolator.cs b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/ScaleInterpolator.cs new file mode 100644 index 00000000..95e4ab4e --- /dev/null +++ b/Source/MonoGame.Extended.Particles/Modifiers/Interpolators/ScaleInterpolator.cs @@ -0,0 +1,21 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Particles.Modifiers.Interpolators +{ + public class ScaleInterpolator : IInterpolator + { + private Vector2 _delta; + public Vector2 StartValue { get; set; } + + public Vector2 EndValue + { + get { return _delta + StartValue; } + set { _delta = value - StartValue; } + } + + public unsafe void Update(float amount, Particle* particle) + { + particle->Scale = _delta*amount + StartValue; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Modifiers/LinearGravityModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/LinearGravityModifier.cs similarity index 65% rename from Source/MonoGame.Extended/Particles/Modifiers/LinearGravityModifier.cs rename to Source/MonoGame.Extended.Particles/Modifiers/LinearGravityModifier.cs index ba6e5751..24b91c48 100644 --- a/Source/MonoGame.Extended/Particles/Modifiers/LinearGravityModifier.cs +++ b/Source/MonoGame.Extended.Particles/Modifiers/LinearGravityModifier.cs @@ -4,19 +4,19 @@ namespace MonoGame.Extended.Particles.Modifiers { public class LinearGravityModifier : IModifier { - public Axis Direction { get; set; } + public Vector2 Direction { get; set; } public float Strength { get; set; } public unsafe void Update(float elapsedSeconds, ParticleBuffer.ParticleIterator iterator) { - var vector = Direction * (Strength * elapsedSeconds); + var vector = Direction*(Strength*elapsedSeconds); while (iterator.HasNext) { var particle = iterator.Next(); particle->Velocity = new Vector2( - particle->Velocity.X + vector.X * particle->Mass, - particle->Velocity.Y + vector.Y * particle->Mass); + particle->Velocity.X + vector.X*particle->Mass, + particle->Velocity.Y + vector.Y*particle->Mass); } } } diff --git a/Source/MonoGame.Extended/Particles/Modifiers/OpacityFastFadeModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/OpacityFastFadeModifier.cs similarity index 100% rename from Source/MonoGame.Extended/Particles/Modifiers/OpacityFastFadeModifier.cs rename to Source/MonoGame.Extended.Particles/Modifiers/OpacityFastFadeModifier.cs diff --git a/Source/MonoGame.Extended/Particles/Modifiers/RotationModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/RotationModifier.cs similarity index 87% rename from Source/MonoGame.Extended/Particles/Modifiers/RotationModifier.cs rename to Source/MonoGame.Extended.Particles/Modifiers/RotationModifier.cs index 68f44b5a..f8ddc5bb 100644 --- a/Source/MonoGame.Extended/Particles/Modifiers/RotationModifier.cs +++ b/Source/MonoGame.Extended.Particles/Modifiers/RotationModifier.cs @@ -6,7 +6,7 @@ public unsafe void Update(float elapsedSeconds, ParticleBuffer.ParticleIterator iterator) { - var rotationRateDelta = RotationRate * elapsedSeconds; + var rotationRateDelta = RotationRate*elapsedSeconds; while (iterator.HasNext) { diff --git a/Source/MonoGame.Extended/Particles/Modifiers/VelocityColorModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/VelocityColorModifier.cs similarity index 61% rename from Source/MonoGame.Extended/Particles/Modifiers/VelocityColorModifier.cs rename to Source/MonoGame.Extended.Particles/Modifiers/VelocityColorModifier.cs index b553f6b3..295da5e6 100644 --- a/Source/MonoGame.Extended/Particles/Modifiers/VelocityColorModifier.cs +++ b/Source/MonoGame.Extended.Particles/Modifiers/VelocityColorModifier.cs @@ -10,27 +10,25 @@ namespace MonoGame.Extended.Particles.Modifiers public unsafe void Update(float elapsedSeconds, ParticleBuffer.ParticleIterator iterator) { - var velocityThreshold2 = VelocityThreshold * VelocityThreshold; + var velocityThreshold2 = VelocityThreshold*VelocityThreshold; while (iterator.HasNext) { var particle = iterator.Next(); - var velocity2 = particle->Velocity.X * particle->Velocity.X + - particle->Velocity.Y * particle->Velocity.Y; + var velocity2 = particle->Velocity.X*particle->Velocity.X + + particle->Velocity.Y*particle->Velocity.Y; var deltaColor = VelocityColor - StationaryColor; if (velocity2 >= velocityThreshold2) - { VelocityColor.CopyTo(out particle->Color); - } else { - var t = (float)Math.Sqrt(velocity2) / VelocityThreshold; + var t = (float) Math.Sqrt(velocity2)/VelocityThreshold; particle->Color = new HslColor( - deltaColor.H * t + StationaryColor.H, - deltaColor.S * t + StationaryColor.S, - deltaColor.L * t + StationaryColor.L); + deltaColor.H*t + StationaryColor.H, + deltaColor.S*t + StationaryColor.S, + deltaColor.L*t + StationaryColor.L); } } } diff --git a/Source/MonoGame.Extended.Particles/Modifiers/VelocityModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/VelocityModifier.cs new file mode 100644 index 00000000..77ff6818 --- /dev/null +++ b/Source/MonoGame.Extended.Particles/Modifiers/VelocityModifier.cs @@ -0,0 +1,42 @@ +using System; +using MonoGame.Extended.Particles.Modifiers.Interpolators; + +namespace MonoGame.Extended.Particles.Modifiers +{ + public class VelocityModifier + { + public IInterpolator[] Interpolators { get; set; } + + public float VelocityThreshold { get; set; } + + public unsafe void Update(float elapsedSeconds, ParticleBuffer.ParticleIterator iterator) + { + var velocityThreshold2 = VelocityThreshold*VelocityThreshold; + var n = Interpolators.Length; + + while (iterator.HasNext) + { + var particle = iterator.Next(); + var velocity2 = particle->Velocity.LengthSquared(); + + if (velocity2 >= velocityThreshold2) + { + for (var i = 0; i < n; i++) + { + var interpolator = Interpolators[i]; + interpolator.Update(1, particle); + } + } + else + { + var t = (float) Math.Sqrt(velocity2)/VelocityThreshold; + for (var i = 0; i < n; i++) + { + var interpolator = Interpolators[i]; + interpolator.Update(t, particle); + } + } + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Modifiers/VortexModifier.cs b/Source/MonoGame.Extended.Particles/Modifiers/VortexModifier.cs similarity index 83% rename from Source/MonoGame.Extended/Particles/Modifiers/VortexModifier.cs rename to Source/MonoGame.Extended.Particles/Modifiers/VortexModifier.cs index bfd775de..7816e6a6 100644 --- a/Source/MonoGame.Extended/Particles/Modifiers/VortexModifier.cs +++ b/Source/MonoGame.Extended.Particles/Modifiers/VortexModifier.cs @@ -4,12 +4,11 @@ namespace MonoGame.Extended.Particles.Modifiers { public unsafe class VortexModifier : IModifier { + // Note: not the real-life one + private const float _gravConst = 100000f; public Vector2 Position { get; set; } public float Mass { get; set; } public float MaxSpeed { get; set; } - - // Note: not the real-life one - private const float _gravConst = 100000f; public void Update(float elapsedSeconds, ParticleBuffer.ParticleIterator iterator) { @@ -20,9 +19,10 @@ namespace MonoGame.Extended.Particles.Modifiers var distance2 = diff.LengthSquared(); - var speedGain = _gravConst * Mass / distance2 * elapsedSeconds; + var speedGain = _gravConst*Mass/distance2*elapsedSeconds; // normalize distances and multiply by speedGain - particle->Velocity += diff.ToAxis() * speedGain; + diff.Normalize(); + particle->Velocity += diff*speedGain; } } } diff --git a/Source/MonoGame.Extended.Particles/MonoGame.Extended.Particles.csproj b/Source/MonoGame.Extended.Particles/MonoGame.Extended.Particles.csproj new file mode 100644 index 00000000..b577ed99 --- /dev/null +++ b/Source/MonoGame.Extended.Particles/MonoGame.Extended.Particles.csproj @@ -0,0 +1,95 @@ + + + + + 10.0 + Debug + AnyCPU + {6C8B9E29-D09B-4901-80FD-45AAA35882C6} + Library + MonoGame.Extended.Particles + MonoGame.Extended.Particles + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile111 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + 6 + true + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + true + + + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll + + + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Particle.cs b/Source/MonoGame.Extended.Particles/Particle.cs similarity index 100% rename from Source/MonoGame.Extended/Particles/Particle.cs rename to Source/MonoGame.Extended.Particles/Particle.cs diff --git a/Source/MonoGame.Extended/Particles/ParticleBuffer.cs b/Source/MonoGame.Extended.Particles/ParticleBuffer.cs similarity index 85% rename from Source/MonoGame.Extended/Particles/ParticleBuffer.cs rename to Source/MonoGame.Extended.Particles/ParticleBuffer.cs index eb7e98fe..f38bc204 100644 --- a/Source/MonoGame.Extended/Particles/ParticleBuffer.cs +++ b/Source/MonoGame.Extended.Particles/ParticleBuffer.cs @@ -5,8 +5,15 @@ namespace MonoGame.Extended.Particles { public class ParticleBuffer : IDisposable { + private readonly ParticleIterator _iterator; private readonly IntPtr _nativePointer; - public int Size { get; } + + // points to the first memory pos after the buffer + protected readonly unsafe Particle* BufferEnd; + + private bool _disposed; + // points to the particle after the last active particle. + protected unsafe Particle* Tail; public unsafe ParticleBuffer(int size) { @@ -14,38 +21,46 @@ namespace MonoGame.Extended.Particles // add one extra spot in memory for margin between head and tail // so the iterator can see that it's at the end _nativePointer = Marshal.AllocHGlobal(SizeInBytes); - BufferEnd = (Particle*)(_nativePointer + SizeInBytes); - Head = (Particle*)_nativePointer; - Tail = (Particle*)_nativePointer; + BufferEnd = (Particle*) (_nativePointer + SizeInBytes); + Head = (Particle*) _nativePointer; + Tail = (Particle*) _nativePointer; _iterator = new ParticleIterator(this); GC.AddMemoryPressure(SizeInBytes); } - private readonly ParticleIterator _iterator; + public int Size { get; } public ParticleIterator Iterator => _iterator.Reset(); - - // points to the first memory pos after the buffer - protected readonly unsafe Particle* BufferEnd; // pointer to the first particle public unsafe Particle* Head { get; private set; } - // points to the particle after the last active particle. - protected unsafe Particle* Tail; // Number of available particle spots in the buffer public int Available => Size - Count; // current number of particles public int Count { get; private set; } // total size of the buffer - public int SizeInBytes => Particle.SizeInBytes * (Size + 1); + public int SizeInBytes => Particle.SizeInBytes*(Size + 1); // total size of active particles - public int ActiveSizeInBytes => Particle.SizeInBytes * Count; + public int ActiveSizeInBytes => Particle.SizeInBytes*Count; + + public void Dispose() + { + if (!_disposed) + { + Marshal.FreeHGlobal(_nativePointer); + _disposed = true; + + GC.RemoveMemoryPressure(Particle.SizeInBytes*Size); + } + + GC.SuppressFinalize(this); + } /// - /// Release the given number of particles or the most available. - /// Returns a started iterator to iterate over the new particles. + /// Release the given number of particles or the most available. + /// Returns a started iterator to iterate over the new particles. /// public unsafe ParticleIterator Release(int releaseQuantity) { @@ -66,7 +81,7 @@ namespace MonoGame.Extended.Particles Head += number; if (Head >= BufferEnd) - Head -= (Size + 1); + Head -= Size + 1; } public void CopyTo(IntPtr destination) @@ -84,24 +99,10 @@ namespace MonoGame.Extended.Particles } } - [DllImport("msvcrt.dll", EntryPoint = "memcpy", CallingConvention = CallingConvention.Cdecl, SetLastError = false)] + [DllImport("msvcrt.dll", EntryPoint = "memcpy", CallingConvention = CallingConvention.Cdecl, + SetLastError = false)] public static extern void memcpy(IntPtr dest, IntPtr src, int count); - private bool _disposed; - - public void Dispose() - { - if (!_disposed) - { - Marshal.FreeHGlobal(_nativePointer); - _disposed = true; - - GC.RemoveMemoryPressure(Particle.SizeInBytes * Size); - } - - GC.SuppressFinalize(this); - } - ~ParticleBuffer() { Dispose(); @@ -112,7 +113,6 @@ namespace MonoGame.Extended.Particles private readonly ParticleBuffer _buffer; private unsafe Particle* _current; - public unsafe bool HasNext => _current != _buffer.Tail; public int Total; @@ -121,6 +121,8 @@ namespace MonoGame.Extended.Particles _buffer = buffer; } + public unsafe bool HasNext => _current != _buffer.Tail; + public unsafe ParticleIterator Reset() { _current = _buffer.Head; @@ -144,11 +146,10 @@ namespace MonoGame.Extended.Particles var p = _current; _current++; if (_current == _buffer.BufferEnd) - _current = (Particle*)_buffer._nativePointer; + _current = (Particle*) _buffer._nativePointer; return p; } } - } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/ParticleEffect.cs b/Source/MonoGame.Extended.Particles/ParticleEffect.cs similarity index 100% rename from Source/MonoGame.Extended/Particles/ParticleEffect.cs rename to Source/MonoGame.Extended.Particles/ParticleEffect.cs index 29427775..5631973d 100644 --- a/Source/MonoGame.Extended/Particles/ParticleEffect.cs +++ b/Source/MonoGame.Extended.Particles/ParticleEffect.cs @@ -5,14 +5,14 @@ namespace MonoGame.Extended.Particles { public class ParticleEffect { - public string Name { get; set; } - public ParticleEmitter[] Emitters { get; set; } - public ParticleEffect() { Emitters = new ParticleEmitter[0]; } + public string Name { get; set; } + public ParticleEmitter[] Emitters { get; set; } + public int ActiveParticles => Emitters.Sum(t => t.ActiveParticles); public void FastForward(Vector2 position, float seconds, float triggerPeriod) diff --git a/Source/MonoGame.Extended/Particles/ParticleEmitter.cs b/Source/MonoGame.Extended.Particles/ParticleEmitter.cs similarity index 67% rename from Source/MonoGame.Extended/Particles/ParticleEmitter.cs rename to Source/MonoGame.Extended.Particles/ParticleEmitter.cs index fb4f0118..52929da0 100644 --- a/Source/MonoGame.Extended/Particles/ParticleEmitter.cs +++ b/Source/MonoGame.Extended.Particles/ParticleEmitter.cs @@ -6,28 +6,33 @@ using MonoGame.Extended.TextureAtlases; namespace MonoGame.Extended.Particles { - public unsafe class ParticleEmitter : IDisposable + public unsafe class ParticleEmitter : Transform2D, IDisposable { - public ParticleEmitter(int capacity, TimeSpan term, Profile profile) + private readonly FastRandom _random = new FastRandom(); + private readonly float _term; + internal readonly ParticleBuffer Buffer; + private bool _autoTrigger; + + private float _totalSeconds; + + public ParticleEmitter(TextureRegion2D textureRegion, int capacity, TimeSpan term, Profile profile, + bool autoTrigger = true) { if (profile == null) throw new ArgumentNullException(nameof(profile)); - _term = (float)term.TotalSeconds; + _term = (float) term.TotalSeconds; + _autoTrigger = autoTrigger; + TextureRegion = textureRegion; Buffer = new ParticleBuffer(capacity); - Offset = new Vector2(); + Offset = Vector2.Zero; Profile = profile; Modifiers = new IModifier[0]; ModifierExecutionStrategy = ParticleModifierExecutionStrategy.Serial; Parameters = new ParticleReleaseParameters(); } - private readonly float _term; - - private float _totalSeconds; - internal readonly ParticleBuffer Buffer; - public int ActiveParticles => Buffer.Count; public Vector2 Offset { get; set; } public IModifier[] Modifiers { get; set; } @@ -37,6 +42,12 @@ namespace MonoGame.Extended.Particles public ParticleReleaseParameters Parameters { get; set; } public TextureRegion2D TextureRegion { get; set; } + public void Dispose() + { + Buffer.Dispose(); + GC.SuppressFinalize(this); + } + private void ReclaimExpiredParticles() { var iterator = Buffer.Iterator; @@ -56,12 +67,18 @@ namespace MonoGame.Extended.Particles Buffer.Reclaim(expired); } - public void Update(float elapsedSeconds) + public bool Update(float elapsedSeconds) { + if (_autoTrigger) + { + Trigger(); + _autoTrigger = false; + } + _totalSeconds += elapsedSeconds; if (Buffer.Count == 0) - return; + return false; ReclaimExpiredParticles(); @@ -70,29 +87,33 @@ namespace MonoGame.Extended.Particles while (iterator.HasNext) { var particle = iterator.Next(); - particle->Age = (_totalSeconds - particle->Inception) / _term; - - particle->Position = particle->Position + particle->Velocity * elapsedSeconds; + particle->Age = (_totalSeconds - particle->Inception)/_term; + particle->Position = particle->Position + particle->Velocity*elapsedSeconds; } ModifierExecutionStrategy.ExecuteModifiers(Modifiers, elapsedSeconds, iterator); + return true; + } + + public void Trigger() + { + Trigger(Position); } public void Trigger(Vector2 position) { - var numToRelease = FastRand.NextInteger(Parameters.Quantity); - + var numToRelease = _random.Next(Parameters.Quantity); Release(position + Offset, numToRelease); } public void Trigger(LineSegment line) { - var numToRelease = FastRand.NextInteger(Parameters.Quantity); + var numToRelease = _random.Next(Parameters.Quantity); var lineVector = line.ToVector(); for (var i = 0; i < numToRelease; i++) { - var offset = lineVector * FastRand.NextSingle(); + var offset = lineVector*_random.NextSingle(); Release(line.Origin + offset, 1); } } @@ -105,39 +126,31 @@ namespace MonoGame.Extended.Particles { var particle = iterator.Next(); - Axis heading; + Vector2 heading; Profile.GetOffsetAndHeading(out particle->Position, out heading); particle->Age = 0f; particle->Inception = _totalSeconds; - particle->Position += position; - particle->TriggerPos = position; - var speed = FastRand.NextSingle(Parameters.Speed); + var speed = _random.NextSingle(Parameters.Speed); - particle->Velocity = heading * speed; + particle->Velocity = heading*speed; - FastRand.NextColor(out particle->Color, Parameters.Color); + _random.NextColor(out particle->Color, Parameters.Color); - particle->Opacity = FastRand.NextSingle(Parameters.Opacity); - var scale = FastRand.NextSingle(Parameters.Scale); + particle->Opacity = _random.NextSingle(Parameters.Opacity); + var scale = _random.NextSingle(Parameters.Scale); particle->Scale = new Vector2(scale, scale); - particle->Rotation = FastRand.NextSingle(Parameters.Rotation); - particle->Mass = FastRand.NextSingle(Parameters.Mass); + particle->Rotation = _random.NextSingle(Parameters.Rotation); + particle->Mass = _random.NextSingle(Parameters.Mass); } } - public void Dispose() - { - Buffer.Dispose(); - GC.SuppressFinalize(this); - } - ~ParticleEmitter() { Dispose(); } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/SpriteBatchExtensions.cs b/Source/MonoGame.Extended.Particles/ParticleExtensions.cs similarity index 64% rename from Source/MonoGame.Extended/Particles/SpriteBatchExtensions.cs rename to Source/MonoGame.Extended.Particles/ParticleExtensions.cs index 0cdf285f..d0b502dd 100644 --- a/Source/MonoGame.Extended/Particles/SpriteBatchExtensions.cs +++ b/Source/MonoGame.Extended.Particles/ParticleExtensions.cs @@ -4,18 +4,23 @@ using MonoGame.Extended.TextureAtlases; namespace MonoGame.Extended.Particles { - public static class SpriteBatchExtensions + public static class ParticleExtensions { public static void Draw(this SpriteBatch spriteBatch, ParticleEffect effect) { foreach (var emitter in effect.Emitters) - Draw(spriteBatch, emitter); + UnsafeDraw(spriteBatch, emitter); } - private static unsafe void Draw(SpriteBatch spriteBatch, ParticleEmitter emitter) + public static void Draw(this SpriteBatch spriteBatch, ParticleEmitter emitter) + { + UnsafeDraw(spriteBatch, emitter); + } + + private static unsafe void UnsafeDraw(SpriteBatch spriteBatch, ParticleEmitter emitter) { var textureRegion = emitter.TextureRegion; - var origin = new Vector2(textureRegion.Width / 2f, textureRegion.Height / 2f); + var origin = new Vector2(textureRegion.Width/2f, textureRegion.Height/2f); var iterator = emitter.Buffer.Iterator; while (iterator.HasNext) @@ -26,10 +31,10 @@ namespace MonoGame.Extended.Particles if (spriteBatch.GraphicsDevice.BlendState == BlendState.AlphaBlend) color *= particle->Opacity; else - color.A = (byte)(particle->Opacity * 255); + color.A = (byte) (particle->Opacity*255); var position = new Vector2(particle->Position.X, particle->Position.Y); - var scale = new Vector2(particle->Scale.X / textureRegion.Width, particle->Scale.Y / textureRegion.Height); + var scale = new Vector2(particle->Scale.X/textureRegion.Width, particle->Scale.Y/textureRegion.Height); var particleColor = new Color(color, particle->Opacity); var rotation = particle->Rotation; diff --git a/Source/MonoGame.Extended/Particles/ParticleModifierExecutionStrategy.cs b/Source/MonoGame.Extended.Particles/ParticleModifierExecutionStrategy.cs similarity index 79% rename from Source/MonoGame.Extended/Particles/ParticleModifierExecutionStrategy.cs rename to Source/MonoGame.Extended.Particles/ParticleModifierExecutionStrategy.cs index dc03a8e5..7c80efdf 100644 --- a/Source/MonoGame.Extended/Particles/ParticleModifierExecutionStrategy.cs +++ b/Source/MonoGame.Extended.Particles/ParticleModifierExecutionStrategy.cs @@ -7,14 +7,16 @@ namespace MonoGame.Extended.Particles public abstract class ParticleModifierExecutionStrategy { - internal abstract void ExecuteModifiers(IEnumerable modifiers, float elapsedSeconds, ParticleBuffer.ParticleIterator iterator); - public static ParticleModifierExecutionStrategy Serial = new SerialModifierExecutionStrategy(); public static ParticleModifierExecutionStrategy Parallel = new ParallelModifierExecutionStrategy(); + internal abstract void ExecuteModifiers(IEnumerable modifiers, float elapsedSeconds, + ParticleBuffer.ParticleIterator iterator); + internal class SerialModifierExecutionStrategy : ParticleModifierExecutionStrategy { - internal override void ExecuteModifiers(IEnumerable modifiers, float elapsedSeconds, ParticleBuffer.ParticleIterator iterator) + internal override void ExecuteModifiers(IEnumerable modifiers, float elapsedSeconds, + ParticleBuffer.ParticleIterator iterator) { foreach (var modifier in modifiers) modifier.Update(elapsedSeconds, iterator.Reset()); @@ -23,7 +25,8 @@ namespace MonoGame.Extended.Particles internal class ParallelModifierExecutionStrategy : ParticleModifierExecutionStrategy { - internal override void ExecuteModifiers(IEnumerable modifiers, float elapsedSeconds, ParticleBuffer.ParticleIterator iterator) + internal override void ExecuteModifiers(IEnumerable modifiers, float elapsedSeconds, + ParticleBuffer.ParticleIterator iterator) { TPL.Parallel.ForEach(modifiers, modifier => modifier.Update(elapsedSeconds, iterator.Reset())); } diff --git a/Source/MonoGame.Extended.Particles/ParticleReleaseParameters.cs b/Source/MonoGame.Extended.Particles/ParticleReleaseParameters.cs new file mode 100644 index 00000000..cd8a20bc --- /dev/null +++ b/Source/MonoGame.Extended.Particles/ParticleReleaseParameters.cs @@ -0,0 +1,26 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Particles +{ + public class ParticleReleaseParameters + { + public ParticleReleaseParameters() + { + Quantity = 1; + Speed = new Range(-1f, 1f); + Color = new Range(new HslColor(0f, 0.5f, 0.5f), new HslColor(360f, 0.5f, 0.5f)); + Opacity = new Range(0f, 1f); + Scale = new Range(1f, 10f); + Rotation = new Range(-MathHelper.Pi, MathHelper.Pi); + Mass = 1f; + } + + public Range Quantity { get; set; } + public Range Speed { get; set; } + public Range Color { get; set; } + public Range Opacity { get; set; } + public Range Scale { get; set; } + public Range Rotation { get; set; } + public Range Mass { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Profiles/BoxFillProfile.cs b/Source/MonoGame.Extended.Particles/Profiles/BoxFillProfile.cs similarity index 55% rename from Source/MonoGame.Extended/Particles/Profiles/BoxFillProfile.cs rename to Source/MonoGame.Extended.Particles/Profiles/BoxFillProfile.cs index c95c13cd..e3637135 100644 --- a/Source/MonoGame.Extended/Particles/Profiles/BoxFillProfile.cs +++ b/Source/MonoGame.Extended.Particles/Profiles/BoxFillProfile.cs @@ -7,12 +7,12 @@ namespace MonoGame.Extended.Particles.Profiles public float Width { get; set; } public float Height { get; set; } - public override void GetOffsetAndHeading(out Vector2 offset, out Axis heading) + public override void GetOffsetAndHeading(out Vector2 offset, out Vector2 heading) { - offset = new Vector2(FastRand.NextSingle(Width * -0.5f, Width * 0.5f), - FastRand.NextSingle(Height * -0.5f, Height * 0.5f)); + offset = new Vector2(Random.NextSingle(Width*-0.5f, Width*0.5f), + Random.NextSingle(Height*-0.5f, Height*0.5f)); - FastRand.NextUnitVector(out heading); + Random.NextUnitVector(out heading); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Profiles/BoxProfile.cs b/Source/MonoGame.Extended.Particles/Profiles/BoxProfile.cs similarity index 52% rename from Source/MonoGame.Extended/Particles/Profiles/BoxProfile.cs rename to Source/MonoGame.Extended.Particles/Profiles/BoxProfile.cs index 73d34319..7d31984c 100644 --- a/Source/MonoGame.Extended/Particles/Profiles/BoxProfile.cs +++ b/Source/MonoGame.Extended.Particles/Profiles/BoxProfile.cs @@ -7,25 +7,25 @@ namespace MonoGame.Extended.Particles.Profiles public float Width { get; set; } public float Height { get; set; } - public override void GetOffsetAndHeading(out Vector2 offset, out Axis heading) + public override void GetOffsetAndHeading(out Vector2 offset, out Vector2 heading) { - switch (FastRand.NextInteger(3)) + switch (Random.Next(3)) { case 0: // Left - offset = new Vector2(Width*-0.5f, FastRand.NextSingle(Height*-0.5f, Height*0.5f)); + offset = new Vector2(Width*-0.5f, Random.NextSingle(Height*-0.5f, Height*0.5f)); break; case 1: // Top - offset = new Vector2(FastRand.NextSingle(Width*-0.5f, Width*0.5f), Height*-0.5f); + offset = new Vector2(Random.NextSingle(Width*-0.5f, Width*0.5f), Height*-0.5f); break; case 2: // Right - offset = new Vector2(Width*0.5f, FastRand.NextSingle(Height*-0.5f, Height*0.5f)); + offset = new Vector2(Width*0.5f, Random.NextSingle(Height*-0.5f, Height*0.5f)); break; default: // Bottom - offset = new Vector2(FastRand.NextSingle(Width*-0.5f, Width*0.5f), Height*0.5f); + offset = new Vector2(Random.NextSingle(Width*-0.5f, Width*0.5f), Height*0.5f); break; } - FastRand.NextUnitVector(out heading); + Random.NextUnitVector(out heading); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Particles/Profiles/BoxUniformProfile.cs b/Source/MonoGame.Extended.Particles/Profiles/BoxUniformProfile.cs new file mode 100644 index 00000000..9f766dcf --- /dev/null +++ b/Source/MonoGame.Extended.Particles/Profiles/BoxUniformProfile.cs @@ -0,0 +1,32 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Particles.Profiles +{ + public class BoxUniformProfile : Profile + { + public float Width { get; set; } + public float Height { get; set; } + + public override void GetOffsetAndHeading(out Vector2 offset, out Vector2 heading) + { + var value = Random.Next((int) (2*Width + 2*Height)); + + if (value < Width) // Top + offset = new Vector2(Random.NextSingle(Width*-0.5f, Width*0.5f), Height*-0.5f); + else + { + if (value < 2*Width) // Bottom + offset = new Vector2(Random.NextSingle(Width*-0.5f, Width*0.5f), Height*0.5f); + else + { + if (value < 2*Width + Height) // Left + offset = new Vector2(Width*-0.5f, Random.NextSingle(Height*-0.5f, Height*0.5f)); + else // Right + offset = new Vector2(Width*0.5f, Random.NextSingle(Height*-0.5f, Height*0.5f)); + } + } + + Random.NextUnitVector(out heading); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Profiles/CircleProfile.cs b/Source/MonoGame.Extended.Particles/Profiles/CircleProfile.cs similarity index 56% rename from Source/MonoGame.Extended/Particles/Profiles/CircleProfile.cs rename to Source/MonoGame.Extended.Particles/Profiles/CircleProfile.cs index 0f36da6b..ef7f11e7 100644 --- a/Source/MonoGame.Extended/Particles/Profiles/CircleProfile.cs +++ b/Source/MonoGame.Extended.Particles/Profiles/CircleProfile.cs @@ -7,18 +7,18 @@ namespace MonoGame.Extended.Particles.Profiles public float Radius { get; set; } public CircleRadiation Radiate { get; set; } - public override void GetOffsetAndHeading(out Vector2 offset, out Axis heading) + public override void GetOffsetAndHeading(out Vector2 offset, out Vector2 heading) { - var dist = FastRand.NextSingle(0f, Radius); + var dist = Random.NextSingle(0f, Radius); - FastRand.NextUnitVector(out heading); + Random.NextUnitVector(out heading); offset = Radiate == CircleRadiation.In - ? new Vector2(-heading.X * dist, -heading.Y * dist) - : new Vector2(heading.X * dist, heading.Y * dist); + ? new Vector2(-heading.X*dist, -heading.Y*dist) + : new Vector2(heading.X*dist, heading.Y*dist); if (Radiate == CircleRadiation.None) - FastRand.NextUnitVector(out heading); + Random.NextUnitVector(out heading); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Profiles/LineProfile.cs b/Source/MonoGame.Extended.Particles/Profiles/LineProfile.cs similarity index 61% rename from Source/MonoGame.Extended/Particles/Profiles/LineProfile.cs rename to Source/MonoGame.Extended.Particles/Profiles/LineProfile.cs index 5cea301e..bea584e9 100644 --- a/Source/MonoGame.Extended/Particles/Profiles/LineProfile.cs +++ b/Source/MonoGame.Extended.Particles/Profiles/LineProfile.cs @@ -4,14 +4,14 @@ namespace MonoGame.Extended.Particles.Profiles { public class LineProfile : Profile { - public Axis Axis { get; set; } + public Vector2 Axis { get; set; } public float Length { get; set; } - public override void GetOffsetAndHeading(out Vector2 offset, out Axis heading) + public override void GetOffsetAndHeading(out Vector2 offset, out Vector2 heading) { - var vect = Axis * FastRand.NextSingle(Length * -0.5f, Length * 0.5f); + var vect = Axis*Random.NextSingle(Length*-0.5f, Length*0.5f); offset = new Vector2(vect.X, vect.Y); - FastRand.NextUnitVector(out heading); + Random.NextUnitVector(out heading); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Profiles/PointProfile.cs b/Source/MonoGame.Extended.Particles/Profiles/PointProfile.cs similarity index 77% rename from Source/MonoGame.Extended/Particles/Profiles/PointProfile.cs rename to Source/MonoGame.Extended.Particles/Profiles/PointProfile.cs index 583a6505..04456d3f 100644 --- a/Source/MonoGame.Extended/Particles/Profiles/PointProfile.cs +++ b/Source/MonoGame.Extended.Particles/Profiles/PointProfile.cs @@ -4,11 +4,11 @@ namespace MonoGame.Extended.Particles.Profiles { public class PointProfile : Profile { - public override void GetOffsetAndHeading(out Vector2 offset, out Axis heading) + public override void GetOffsetAndHeading(out Vector2 offset, out Vector2 heading) { offset = Vector2.Zero; - FastRand.NextUnitVector(out heading); + Random.NextUnitVector(out heading); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Profiles/Profile.cs b/Source/MonoGame.Extended.Particles/Profiles/Profile.cs similarity index 54% rename from Source/MonoGame.Extended/Particles/Profiles/Profile.cs rename to Source/MonoGame.Extended.Particles/Profiles/Profile.cs index f194edaf..f3a2da85 100644 --- a/Source/MonoGame.Extended/Particles/Profiles/Profile.cs +++ b/Source/MonoGame.Extended.Particles/Profiles/Profile.cs @@ -4,53 +4,60 @@ namespace MonoGame.Extended.Particles.Profiles { public abstract class Profile //: ICloneable { - public abstract void GetOffsetAndHeading(out Vector2 offset, out Axis heading); + public enum CircleRadiation + { + None, + In, + Out + } + + protected FastRandom Random { get; } = new FastRandom(); + + public abstract void GetOffsetAndHeading(out Vector2 offset, out Vector2 heading); public object Clone() { return MemberwiseClone(); } - public enum CircleRadiation { None, In, Out } - public static Profile Point() { return new PointProfile(); } - public static Profile Line(Axis axis, float length) + public static Profile Line(Vector2 axis, float length) { - return new LineProfile { Axis = axis, Length = length }; + return new LineProfile {Axis = axis, Length = length}; } public static Profile Ring(float radius, CircleRadiation radiate) { - return new RingProfile { Radius = radius, Radiate = radiate }; + return new RingProfile {Radius = radius, Radiate = radiate}; } public static Profile Box(float width, float height) { - return new BoxProfile { Width = width, Height = height }; + return new BoxProfile {Width = width, Height = height}; } public static Profile BoxFill(float width, float height) { - return new BoxFillProfile { Width = width, Height = height }; + return new BoxFillProfile {Width = width, Height = height}; } public static Profile BoxUniform(float width, float height) { - return new BoxUniformProfile { Width = width, Height = height }; + return new BoxUniformProfile {Width = width, Height = height}; } public static Profile Circle(float radius, CircleRadiation radiate) { - return new CircleProfile { Radius = radius, Radiate = radiate }; + return new CircleProfile {Radius = radius, Radiate = radiate}; } - public static Profile Spray(Axis direction, float spread) + public static Profile Spray(Vector2 direction, float spread) { - return new SprayProfile { Direction = direction, Spread = spread }; + return new SprayProfile {Direction = direction, Spread = spread}; } public override string ToString() @@ -58,4 +65,4 @@ namespace MonoGame.Extended.Particles.Profiles return GetType().ToString(); } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Particles/Profiles/RingProfile.cs b/Source/MonoGame.Extended.Particles/Profiles/RingProfile.cs similarity index 65% rename from Source/MonoGame.Extended/Particles/Profiles/RingProfile.cs rename to Source/MonoGame.Extended.Particles/Profiles/RingProfile.cs index 897e0116..d5ac2f82 100644 --- a/Source/MonoGame.Extended/Particles/Profiles/RingProfile.cs +++ b/Source/MonoGame.Extended.Particles/Profiles/RingProfile.cs @@ -8,21 +8,21 @@ namespace MonoGame.Extended.Particles.Profiles public float Radius { get; set; } public CircleRadiation Radiate { get; set; } - public override void GetOffsetAndHeading(out Vector2 offset, out Axis heading) + public override void GetOffsetAndHeading(out Vector2 offset, out Vector2 heading) { - FastRand.NextUnitVector(out heading); + Random.NextUnitVector(out heading); switch (Radiate) { case CircleRadiation.In: - offset = new Vector2(-heading.X * Radius, -heading.Y * Radius); + offset = new Vector2(-heading.X*Radius, -heading.Y*Radius); break; case CircleRadiation.Out: - offset = new Vector2(heading.X * Radius, heading.Y * Radius); + offset = new Vector2(heading.X*Radius, heading.Y*Radius); break; case CircleRadiation.None: - offset = new Vector2(heading.X * Radius, heading.Y * Radius); - FastRand.NextUnitVector(out heading); + offset = new Vector2(heading.X*Radius, heading.Y*Radius); + Random.NextUnitVector(out heading); break; default: throw new ArgumentOutOfRangeException($"{Radiate} is not supported"); diff --git a/Source/MonoGame.Extended/Particles/Profiles/SprayProfile.cs b/Source/MonoGame.Extended.Particles/Profiles/SprayProfile.cs similarity index 50% rename from Source/MonoGame.Extended/Particles/Profiles/SprayProfile.cs rename to Source/MonoGame.Extended.Particles/Profiles/SprayProfile.cs index de653889..6259210f 100644 --- a/Source/MonoGame.Extended/Particles/Profiles/SprayProfile.cs +++ b/Source/MonoGame.Extended.Particles/Profiles/SprayProfile.cs @@ -5,17 +5,16 @@ namespace MonoGame.Extended.Particles.Profiles { public class SprayProfile : Profile { - public Axis Direction { get; set; } + public Vector2 Direction { get; set; } public float Spread { get; set; } - public override void GetOffsetAndHeading(out Vector2 offset, out Axis heading) + public override void GetOffsetAndHeading(out Vector2 offset, out Vector2 heading) { - var angle = Direction.Map((x, y) => (float)Math.Atan2(y, x)); - - angle = FastRand.NextSingle(angle - Spread / 2f, angle + Spread / 2f); + var angle = (float) Math.Atan2(Direction.Y, Direction.X); + angle = Random.NextSingle(angle - Spread/2f, angle + Spread/2f); offset = Vector2.Zero; - heading = new Axis((float)Math.Cos(angle), (float)Math.Sin(angle)); + heading = new Vector2((float) Math.Cos(angle), (float) Math.Sin(angle)); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Particles/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Particles/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..1940879e --- /dev/null +++ b/Source/MonoGame.Extended.Particles/Properties/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System.Resources; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Particles")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Particles")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.Particles/packages.config b/Source/MonoGame.Extended.Particles/packages.config new file mode 100644 index 00000000..28c01444 --- /dev/null +++ b/Source/MonoGame.Extended.Particles/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.SceneGraphs.nuspec b/Source/MonoGame.Extended.SceneGraphs.nuspec new file mode 100644 index 00000000..3c407ba2 --- /dev/null +++ b/Source/MonoGame.Extended.SceneGraphs.nuspec @@ -0,0 +1,33 @@ + + + + + MonoGame.Extended.SceneGraphs + $version$ + + A scene graph system to make MonoGame more awesome. + + Dylan Wilson + MonoGame.Extended.SceneGraphs + Craftwork Games + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE + https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png + false + + Copyright 2017 - Craftwork Games + monogame extended scene graph node entity + + + + + + + + + + + + + + diff --git a/Source/MonoGame.Extended.SceneGraphs/ISceneEntity.cs b/Source/MonoGame.Extended.SceneGraphs/ISceneEntity.cs new file mode 100644 index 00000000..e5e79115 --- /dev/null +++ b/Source/MonoGame.Extended.SceneGraphs/ISceneEntity.cs @@ -0,0 +1,11 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Shapes; +using MonoGame.Extended.TextureAtlases; + +namespace MonoGame.Extended.SceneGraphs +{ + + + +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.SceneGraphs/MonoGame.Extended.SceneGraphs.csproj b/Source/MonoGame.Extended.SceneGraphs/MonoGame.Extended.SceneGraphs.csproj new file mode 100644 index 00000000..6a45fd79 --- /dev/null +++ b/Source/MonoGame.Extended.SceneGraphs/MonoGame.Extended.SceneGraphs.csproj @@ -0,0 +1,59 @@ + + + + + 10.0 + Debug + AnyCPU + {FE61C3D7-D96D-4AA4-9EF1-17E457BB2C7C} + Library + MonoGame.Extended.SceneGraphs + MonoGame.Extended.SceneGraphs + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile111 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll + + + + + + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.SceneGraphs/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.SceneGraphs/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..7e68b61e --- /dev/null +++ b/Source/MonoGame.Extended.SceneGraphs/Properties/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System.Resources; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.SceneGraphs")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.SceneGraphs")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended/SceneGraphs/SceneEntityCollection.cs b/Source/MonoGame.Extended.SceneGraphs/SceneEntityCollection.cs similarity index 60% rename from Source/MonoGame.Extended/SceneGraphs/SceneEntityCollection.cs rename to Source/MonoGame.Extended.SceneGraphs/SceneEntityCollection.cs index 32c34083..4010ad17 100644 --- a/Source/MonoGame.Extended/SceneGraphs/SceneEntityCollection.cs +++ b/Source/MonoGame.Extended.SceneGraphs/SceneEntityCollection.cs @@ -2,7 +2,7 @@ namespace MonoGame.Extended.SceneGraphs { - public class SceneEntityCollection : Collection + public class SceneEntityCollection : Collection { } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/SceneGraphs/SceneGraph.cs b/Source/MonoGame.Extended.SceneGraphs/SceneGraph.cs similarity index 83% rename from Source/MonoGame.Extended/SceneGraphs/SceneGraph.cs rename to Source/MonoGame.Extended.SceneGraphs/SceneGraph.cs index a10612f2..54393446 100644 --- a/Source/MonoGame.Extended/SceneGraphs/SceneGraph.cs +++ b/Source/MonoGame.Extended.SceneGraphs/SceneGraph.cs @@ -22,11 +22,11 @@ namespace MonoGame.Extended.SceneGraphs { var node = RootNode; - while (node != null && node.GetBoundingRectangle().Contains(x, y)) + while ((node != null) && node.BoundingRectangle.Contains(new Point2(x, y))) { - var childNode = node.Children.FirstOrDefault(c => c.GetBoundingRectangle().Contains(x, y)); + var childNode = node.Children.FirstOrDefault(c => c.BoundingRectangle.Contains(new Point2(x, y))); - if(childNode != null) + if (childNode != null) node = childNode; else return node; diff --git a/Source/MonoGame.Extended/SceneGraphs/SpriteBatchExtensions.cs b/Source/MonoGame.Extended.SceneGraphs/SceneGraphExtensions.cs similarity index 84% rename from Source/MonoGame.Extended/SceneGraphs/SpriteBatchExtensions.cs rename to Source/MonoGame.Extended.SceneGraphs/SceneGraphExtensions.cs index 017d1282..1aa5997b 100644 --- a/Source/MonoGame.Extended/SceneGraphs/SpriteBatchExtensions.cs +++ b/Source/MonoGame.Extended.SceneGraphs/SceneGraphExtensions.cs @@ -2,7 +2,7 @@ namespace MonoGame.Extended.SceneGraphs { - public static class SpriteBatchExtensions + public static class SceneGraphExtensions { public static void Draw(this SpriteBatch spriteBatch, SceneGraph sceneGraph) { diff --git a/Source/MonoGame.Extended.SceneGraphs/SceneNode.cs b/Source/MonoGame.Extended.SceneGraphs/SceneNode.cs new file mode 100644 index 00000000..ce64d242 --- /dev/null +++ b/Source/MonoGame.Extended.SceneGraphs/SceneNode.cs @@ -0,0 +1,90 @@ +using System.Linq; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Sprites; + +namespace MonoGame.Extended.SceneGraphs +{ + public class SceneNode : Transform2D + { + public SceneNode(string name) + : this(name, Vector2.Zero, 0, Vector2.One) + { + } + + public SceneNode(string name, Vector2 position, float rotation = 0) + : this(name, position, rotation, Vector2.One) + { + } + + public SceneNode(string name, Vector2 position, float rotation, Vector2 scale) + { + Name = name; + Position = position; + Rotation = rotation; + Scale = scale; + + Children = new SceneNodeCollection(this); + Entities = new SceneEntityCollection(); + } + + public SceneNode() + : this(null, Vector2.Zero, 0, Vector2.One) + { + } + + public string Name { get; set; } + + public SceneNodeCollection Children { get; } + public SceneEntityCollection Entities { get; } + public object Tag { get; set; } + + public RectangleF BoundingRectangle + { + get + { + var rectangles = Entities + .Select(e => + { + var r = e.BoundingRectangle; + r.Offset(WorldPosition); + return r; + }) + .Concat(Children.Select(i => i.BoundingRectangle)) + .ToArray(); + var x0 = rectangles.Min(r => r.Left); + var y0 = rectangles.Min(r => r.Top); + var x1 = rectangles.Max(r => r.Right); + var y1 = rectangles.Max(r => r.Bottom); + + return new RectangleF(x0, y0, x1 - x0, y1 - y0); + } + } + + public void Draw(SpriteBatch spriteBatch) + { + foreach (var drawable in Entities.OfType()) + { + if (drawable.IsVisible) + { + var texture = drawable.TextureRegion.Texture; + var sourceRectangle = drawable.TextureRegion.Bounds; + var position = WorldPosition + drawable.Position; + var rotation = WorldRotation + drawable.Rotation; + var scale = WorldScale*drawable.Scale; + + spriteBatch.Draw(texture, position, sourceRectangle, drawable.Color, rotation, drawable.Origin, + scale, drawable.Effect, 0); + } + } + + foreach (var child in Children) + child.Draw(spriteBatch); + } + + public override string ToString() + { + return $"name: {Name}, position: {Position}, rotation: {Rotation}, scale: {Scale}"; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/SceneGraphs/SceneNodeCollection.cs b/Source/MonoGame.Extended.SceneGraphs/SceneNodeCollection.cs similarity index 100% rename from Source/MonoGame.Extended/SceneGraphs/SceneNodeCollection.cs rename to Source/MonoGame.Extended.SceneGraphs/SceneNodeCollection.cs diff --git a/Source/MonoGame.Extended.SceneGraphs/packages.config b/Source/MonoGame.Extended.SceneGraphs/packages.config new file mode 100644 index 00000000..28c01444 --- /dev/null +++ b/Source/MonoGame.Extended.SceneGraphs/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tests/Shapes/CircleTests.cs b/Source/MonoGame.Extended.Tests/Shapes/CircleTests.cs deleted file mode 100644 index 65a5559a..00000000 --- a/Source/MonoGame.Extended.Tests/Shapes/CircleTests.cs +++ /dev/null @@ -1,189 +0,0 @@ -using Microsoft.Xna.Framework; -using MonoGame.Extended.Shapes; -using NUnit.Framework; - -namespace MonoGame.Extended.Tests.Shapes -{ - [TestFixture] - public class CircleTests - { - [Test] - public void Circle_ConstructorsAndProperties() - { - var circle = new CircleF(new Vector2(200.0f, 300.0f), 100.0f); - - Assert.AreEqual(new CircleF() { Center = new Vector2(200.0f, 300.0f), Radius = 100.0f }, circle); - Assert.AreEqual(200.0f - 100.0f, circle.Left); - Assert.AreEqual(200.0f + 100.0f, circle.Right); - Assert.AreEqual(300.0f - 100.0f, circle.Top); - Assert.AreEqual(300.0f + 100.0f, circle.Bottom); - Assert.AreEqual(new Point(200, 300), circle.Location); - Assert.AreEqual(new Vector2(200.0f, 300.0f), circle.Center); - Assert.AreEqual(100.0f, circle.Radius); - Assert.AreEqual(false, circle.IsEmpty); - Assert.AreEqual(true, new CircleF().IsEmpty); - Assert.AreEqual(new CircleF(), CircleF.Empty); - } - - [Test] - public void Circle_ContainsPoint() - { - var circle = new CircleF(new Vector2(200.0f, 300.0f), 100.0f); - - var p1 = new Point(-1, -1); - var p2 = new Point(110, 300); - var p3 = new Point(200, 300); - var p4 = new Point(290, 300); - var p5 = new Point(400, 400); - - bool result; - - circle.Contains(ref p1, out result); - Assert.AreEqual(false, result); - circle.Contains(ref p2, out result); - Assert.AreEqual(true, result); - circle.Contains(ref p3, out result); - Assert.AreEqual(true, result); - circle.Contains(ref p4, out result); - Assert.AreEqual(true, result); - circle.Contains(ref p5, out result); - Assert.AreEqual(false, result); - - Assert.AreEqual(false, circle.Contains(p1)); - Assert.AreEqual(true, circle.Contains(p2)); - Assert.AreEqual(true, circle.Contains(p3)); - Assert.AreEqual(true, circle.Contains(p4)); - Assert.AreEqual(false, circle.Contains(p5)); - } - - [Test] - public void Circle_ContainsVector2() - { - var circle = new CircleF(new Vector2(200.0f, 300.0f), 100.0f); - - var p1 = new Vector2(-1, -1); - var p2 = new Vector2(110, 300); - var p3 = new Vector2(200, 300); - var p4 = new Vector2(290, 300); - var p5 = new Vector2(400, 400); - - bool result; - - circle.Contains(ref p1, out result); - Assert.AreEqual(false, result); - circle.Contains(ref p2, out result); - Assert.AreEqual(true, result); - circle.Contains(ref p3, out result); - Assert.AreEqual(true, result); - circle.Contains(ref p4, out result); - Assert.AreEqual(true, result); - circle.Contains(ref p5, out result); - Assert.AreEqual(false, result); - - Assert.AreEqual(false, circle.Contains(p1)); - Assert.AreEqual(true, circle.Contains(p2)); - Assert.AreEqual(true, circle.Contains(p3)); - Assert.AreEqual(true, circle.Contains(p4)); - Assert.AreEqual(false, circle.Contains(p5)); - } - - [Test] - public void Circle_ContainsFloats() - { - var circle = new CircleF(new Vector2(200.0f, 300.0f), 100.0f); - - float x1 = -1; float y1 = -1; - float x2 = 110; float y2 = 300; - float x3 = 200; float y3 = 300; - float x4 = 290; float y4 = 300; - float x5 = 400; float y5 = 400; - - Assert.AreEqual(false, circle.Contains(x1, y1)); - Assert.AreEqual(true, circle.Contains(x2, y2)); - Assert.AreEqual(true, circle.Contains(x3, y3)); - Assert.AreEqual(true, circle.Contains(x4, y4)); - Assert.AreEqual(false, circle.Contains(x5, y5)); - } - - [Test] - public void Circle_ContainsCircle() - { - var circle = new CircleF(new Vector2(200.0f, 300.0f), 100.0f); - var circle1 = new CircleF(new Vector2(199.0f, 299.0f), 100.0f); - var circle2 = new CircleF(new Vector2(200.0f, 300.0f), 25.0f); - var circle3 = new CircleF(new Vector2(200.0f, 300.0f), 100.0f); - var circle4 = new CircleF(new Vector2(201.0f, 301.0f), 100.0f); - - bool result; - - circle.Contains(ref circle1, out result); - Assert.AreEqual(false, result); - - circle.Contains(ref circle2, out result); - Assert.AreEqual(true, result); - - circle.Contains(ref circle3, out result); - Assert.AreEqual(true, result); - - circle.Contains(ref circle4, out result); - Assert.AreEqual(false, result); - - Assert.AreEqual(false, circle.Contains(circle1)); - Assert.AreEqual(true, circle.Contains(circle2)); - Assert.AreEqual(true, circle.Contains(circle3)); - Assert.AreEqual(false, circle.Contains(circle4)); - } - - [Test] - public void Circle_IntersectionTest() - { - var circle = new CircleF(new Vector2(200.0f, 300.0f), 100.0f); - - var circ1 = new CircleF(new Vector2(350.0f, 300.0f), 100.0f); - var circ2 = new CircleF(new Vector2(400.0f, 300.0f), 100.0f); - - var rect1 = new Rectangle(250, 300, 100, 100); - var rect2 = new Rectangle(400, 300, 100, 100); - - bool result; - - circle.Intersects(ref circ1, out result); - Assert.AreEqual(true, result); - circle.Intersects(ref circ2, out result); - Assert.AreEqual(false, result); - - circle.Intersects(ref rect1, out result); - Assert.AreEqual(true, result); - circle.Intersects(ref rect2, out result); - Assert.AreEqual(false, result); - - Assert.AreEqual(true, circle.Intersects(circ1)); - Assert.AreEqual(false, circle.Intersects(circ2)); - - Assert.AreEqual(true, circle.Intersects(rect1)); - Assert.AreEqual(false, circle.Intersects(rect2)); - } - - [Test] - public void Circle_Inflate() - { - var circle = new CircleF(new Vector2(200.0f, 300.0f), 100.0f); - circle.Inflate(100.0f); - Assert.AreEqual(new CircleF(new Vector2(100.0f, 200.0f), 300.0f), circle); - } - - [Test] - public void Circle_ToStringTest() - { - Assert.AreEqual("{Center:{X:200 Y:300} Radius:100}", new CircleF(new Vector2(200.0f, 300.0f), 100.0f).ToString()); - } - - [Test] - public void Circle_ToRectangleTest() - { - var actual = new CircleF(center: new Vector2(200, 300), radius: 100).ToRectangle(); - var expected = new Rectangle(100, 200, 200, 200); - Assert.AreEqual(expected, actual); - } - } -} diff --git a/Source/MonoGame.Extended.Tiled.nuspec b/Source/MonoGame.Extended.Tiled.nuspec new file mode 100644 index 00000000..f117e622 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled.nuspec @@ -0,0 +1,35 @@ + + + + + MonoGame.Extended.Tiled + $version$ + + Support for Tiled maps to make MonoGame more awesome. See http://www.mapeditor.org + + Dylan Wilson + MonoGame.Extended.Tiled + Craftwork Games + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE + https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png + false + + Copyright 2017 - Craftwork Games + monogame extended pipeline tiled + + + + + + + + + + + + + + + + diff --git a/Source/MonoGame.Extended.Tiled/Graphics/Effects/ITiledMapEffect.cs b/Source/MonoGame.Extended.Tiled/Graphics/Effects/ITiledMapEffect.cs new file mode 100644 index 00000000..3f58a782 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Graphics/Effects/ITiledMapEffect.cs @@ -0,0 +1,9 @@ +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Graphics.Effects +{ + public interface ITiledMapEffect : IEffectMatrices, ITextureEffect + { + float Alpha { get; set; } + } +} diff --git a/Source/MonoGame.Extended.Tiled/Graphics/Effects/TiledMapEffect.cs b/Source/MonoGame.Extended.Tiled/Graphics/Effects/TiledMapEffect.cs new file mode 100644 index 00000000..39f79f28 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Graphics/Effects/TiledMapEffect.cs @@ -0,0 +1,32 @@ +using System; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Graphics.Effects +{ + public class TiledMapEffect : DefaultEffect, ITiledMapEffect + { + public TiledMapEffect(GraphicsDevice graphicsDevice) + : base(graphicsDevice) + { + Initialize(); + } + + public TiledMapEffect(GraphicsDevice graphicsDevice, byte[] byteCode) + : base(graphicsDevice, byteCode) + { + Initialize(); + } + + public TiledMapEffect(Effect cloneSource) + : base(cloneSource) + { + Initialize(); + } + + private void Initialize() + { + VertexColorEnabled = false; + TextureEnabled = true; + } + } +} diff --git a/Source/MonoGame.Extended.Tiled/Graphics/TiledMapLayerAnimatedModel.cs b/Source/MonoGame.Extended.Tiled/Graphics/TiledMapLayerAnimatedModel.cs new file mode 100644 index 00000000..5941d271 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Graphics/TiledMapLayerAnimatedModel.cs @@ -0,0 +1,26 @@ +using Microsoft.Xna.Framework.Content; +using MonoGame.Extended.Tiled; + +namespace MonoGame.Extended.Graphics +{ + public sealed class TiledMapLayerAnimatedModel : TiledMapLayerModel + { + internal TiledMapLayerAnimatedModel(ContentReader reader, TiledMap map) + : base(reader, true) + { + var tilesetFirstGlobalIdentifier = reader.ReadInt32(); + var tileset = map.GetTilesetByTileGlobalIdentifier(tilesetFirstGlobalIdentifier); + + var animatedTilesetTileCount = reader.ReadInt32(); + AnimatedTilesetTiles = new TiledMapTilesetAnimatedTile[animatedTilesetTileCount]; + + for (var i = 0; i < animatedTilesetTileCount; i++) + { + var tileLocalIdentifier = reader.ReadInt32(); + AnimatedTilesetTiles[i] = tileset.GetAnimatedTilesetTileByLocalTileIdentifier(tileLocalIdentifier); + } + } + + public TiledMapTilesetAnimatedTile[] AnimatedTilesetTiles { get; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Graphics/TiledMapLayerModel.cs b/Source/MonoGame.Extended.Tiled/Graphics/TiledMapLayerModel.cs new file mode 100644 index 00000000..2b500674 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Graphics/TiledMapLayerModel.cs @@ -0,0 +1,75 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Content; + +namespace MonoGame.Extended.Graphics +{ + public class TiledMapLayerModel : IDisposable + { + public string LayerName { get; } + public Texture2D Texture { get; } + public VertexBuffer VertexBuffer { get; } + public IndexBuffer IndexBuffer { get; } + public int TrianglesCount { get; } + + internal VertexPositionTexture[] Vertices; + + internal TiledMapLayerModel(ContentReader reader, bool isDynamicData = false) + { + var graphicsDevice = reader.GetGraphicsDevice(); + + LayerName = reader.ReadString(); + var textureAssetName = reader.GetRelativeAssetName(reader.ReadString()); + Texture = reader.ContentManager.Load(textureAssetName); + + var vertexCount = reader.ReadInt32(); + var vertices = new VertexPositionTexture[vertexCount]; + for (var i = 0; i < vertexCount; i++) + { + var x = reader.ReadSingle(); + var y = reader.ReadSingle(); + var textureCoordinateX = reader.ReadSingle(); + var textureCoordinateY = reader.ReadSingle(); + vertices[i] = new VertexPositionTexture(new Vector3(x, y, 0), new Vector2(textureCoordinateX, textureCoordinateY)); + } + + if (isDynamicData) + Vertices = vertices; + + VertexBuffer = isDynamicData + ? new DynamicVertexBuffer(graphicsDevice, VertexPositionTexture.VertexDeclaration, vertexCount, BufferUsage.WriteOnly) + : new VertexBuffer(graphicsDevice, VertexPositionTexture.VertexDeclaration, vertexCount, BufferUsage.WriteOnly); + VertexBuffer.SetData(vertices, 0, vertexCount); + + var indexCount = reader.ReadInt32(); + var indices = new ushort[indexCount]; + for (var i = 0; i < indexCount; i++) + { + indices[i] = reader.ReadUInt16(); + } + + IndexBuffer = isDynamicData + ? new DynamicIndexBuffer(graphicsDevice, IndexElementSize.SixteenBits, indexCount, BufferUsage.WriteOnly) + : new IndexBuffer(graphicsDevice, IndexElementSize.SixteenBits, indexCount, BufferUsage.WriteOnly); + IndexBuffer.SetData(indices, 0, indexCount); + + TrianglesCount = indexCount / 3; + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool diposing) + { + if (!diposing) + return; + IndexBuffer.Dispose(); + VertexBuffer.Dispose(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Graphics/TiledMapRenderer.cs b/Source/MonoGame.Extended.Tiled/Graphics/TiledMapRenderer.cs new file mode 100644 index 00000000..e700eb07 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Graphics/TiledMapRenderer.cs @@ -0,0 +1,170 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Graphics.Effects; +using MonoGame.Extended.Tiled; + +namespace MonoGame.Extended.Graphics +{ + public class TiledMapRenderer : IDisposable + { + private readonly TiledMapEffect _defaultEffect; + private Matrix _worldMatrix = Matrix.Identity; + + /// + /// Gets the associated with this . + /// + /// + /// The associated with this . + /// + public GraphicsDevice GraphicsDevice { get; } + + public TiledMapRenderer(GraphicsDevice graphicsDevice) + { + if (graphicsDevice == null) + throw new ArgumentNullException(nameof(graphicsDevice)); + + GraphicsDevice = graphicsDevice; + + _defaultEffect = new TiledMapEffect(graphicsDevice); + } + + public void Update(TiledMap map, GameTime gameTime) + { + // ReSharper disable once ForCanBeConvertedToForeach + for (var tilesetIndex = 0; tilesetIndex < map.Tilesets.Count; tilesetIndex++) + { + var tileset = map.Tilesets[tilesetIndex]; + // ReSharper disable once ForCanBeConvertedToForeach + for (var animatedTileIndex = 0; animatedTileIndex < tileset.AnimatedTiles.Count; animatedTileIndex++) + { + var animatedTilesetTile = tileset.AnimatedTiles[animatedTileIndex]; + animatedTilesetTile.Update(gameTime); + } + } + + // ReSharper disable once ForCanBeConvertedToForeach + for (var index = 0; index < map.TileLayers.Count; index++) + { + var layer = map.TileLayers[index]; + UpdateAnimatedModels(layer.AnimatedModels); + } + } + + public void Draw(TiledMap map, Matrix? viewMatrix = null, Matrix? projectionMatrix = null, Effect effect = null, float depth = 0.0f) + { + var viewMatrix1 = viewMatrix ?? Matrix.Identity; + var projectionMatrix1 = projectionMatrix ?? Matrix.CreateOrthographicOffCenter(0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, 0, 0, -1); + Draw(map, ref viewMatrix1, ref projectionMatrix1, effect, depth); + } + + public void Draw(TiledMap map, ref Matrix viewMatrix, ref Matrix projectionMatrix, Effect effect = null, float depth = 0.0f) + { + // ReSharper disable once ForCanBeConvertedToForeach + for (var index = 0; index < map.Layers.Count; index++) + { + var layer = map.Layers[index]; + Draw(layer, ref viewMatrix, ref projectionMatrix, effect, depth); + } + } + + public void Draw(TiledMapLayer layer, Matrix? viewMatrix = null, Matrix? projectionMatrix = null, Effect effect = null, float depth = 0.0f) + { + var viewMatrix1 = viewMatrix ?? Matrix.Identity; + var projectionMatrix1 = projectionMatrix ?? Matrix.CreateOrthographicOffCenter(0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, 0, 0, -1); + Draw(layer, ref viewMatrix1, ref projectionMatrix1, effect, depth); + } + + public void Draw(TiledMapLayer layer, ref Matrix viewMatrix, ref Matrix projectionMatrix, Effect effect = null, float depth = 0.0f) + { + if (!layer.IsVisible) + return; + + if (layer is TiledMapObjectLayer) + return; + + _worldMatrix.Translation = new Vector3(layer.OffsetX, layer.OffsetY, depth); + + var effect1 = effect ?? _defaultEffect; + var tiledMapEffect = effect1 as ITiledMapEffect; + if (tiledMapEffect == null) + return; + + foreach (var model in layer.Models) + { +// model-to-world transform + tiledMapEffect.World = _worldMatrix; + tiledMapEffect.View = viewMatrix; + tiledMapEffect.Projection = projectionMatrix; + + // desired alpha + tiledMapEffect.Alpha = layer.Opacity; + + // desired texture + tiledMapEffect.Texture = model.Texture; + + // bind the vertex and index buffer + GraphicsDevice.SetVertexBuffer(model.VertexBuffer); + GraphicsDevice.Indices = model.IndexBuffer; + + // for each pass in our effect + foreach (var pass in effect1.CurrentTechnique.Passes) + { + // apply the pass, effectively choosing which vertex shader and fragment (pixel) shader to use + pass.Apply(); + + // draw the geometry from the vertex buffer / index buffer + GraphicsDevice.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0, model.TrianglesCount); + } + } + } + + // ReSharper disable once ParameterTypeCanBeEnumerable.Local + private static unsafe void UpdateAnimatedModels(TiledMapLayerAnimatedModel[] animatedModels) + { + foreach (var animatedModel in animatedModels) + { + // update the texture coordinates for each animated tile + fixed (VertexPositionTexture* fixedVerticesPointer = animatedModel.Vertices) + { + var verticesPointer = fixedVerticesPointer; + + foreach (var animatedTile in animatedModel.AnimatedTilesetTiles) + { + var currentFrameTextureCoordinates = animatedTile.CurrentAnimationFrame.TextureCoordinates; + + (*verticesPointer++).TextureCoordinate = currentFrameTextureCoordinates[0]; + (*verticesPointer++).TextureCoordinate = currentFrameTextureCoordinates[1]; + (*verticesPointer++).TextureCoordinate = currentFrameTextureCoordinates[2]; + (*verticesPointer++).TextureCoordinate = currentFrameTextureCoordinates[3]; + } + } + + // copy (upload) the updated vertices to the GPU's memory + animatedModel.VertexBuffer.SetData(animatedModel.Vertices, 0, animatedModel.Vertices.Length); + } + } + + /// + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// + /// Releases unmanaged and - optionally - managed resources. + /// + /// + /// true to release both managed and unmanaged resources; false to release only + /// unmanaged resources. + /// + protected virtual void Dispose(bool diposing) + { + if (diposing) + _defaultEffect.Dispose(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/MonoGame.Extended.Tiled.csproj b/Source/MonoGame.Extended.Tiled/MonoGame.Extended.Tiled.csproj new file mode 100644 index 00000000..1f5a5aeb --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/MonoGame.Extended.Tiled.csproj @@ -0,0 +1,100 @@ + + + + + 11.0 + Debug + AnyCPU + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902} + Library + Properties + MonoGame.Extended + MonoGame.Extended.Tiled + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile111 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + 6 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + true + + + + + {9b3ab8a1-78aa-471a-afd0-b10b932115bc} + MonoGame.Extended.Graphics + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Tiled/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..7ef4fee4 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Properties/AssemblyInfo.cs @@ -0,0 +1,32 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. + +[assembly: AssemblyTitle("MonoGame.Extended.Tiled")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Tiled")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] +[assembly: InternalsVisibleTo("MonoGame.Extended.Content.Pipeline.Tiled")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/ContentReaderExtensions.cs b/Source/MonoGame.Extended.Tiled/Tiled/ContentReaderExtensions.cs new file mode 100644 index 00000000..6a717064 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/ContentReaderExtensions.cs @@ -0,0 +1,19 @@ +using Microsoft.Xna.Framework.Content; + +namespace MonoGame.Extended.Tiled +{ + public static class ContentReaderExtensions + { + public static void ReadTiledMapProperties(this ContentReader reader, TiledMapProperties properties) + { + var count = reader.ReadInt32(); + + for (var i = 0; i < count; i++) + { + var key = reader.ReadString(); + var value = reader.ReadString(); + properties[key] = value; + } + } + } +} diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMap.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMap.cs new file mode 100644 index 00000000..1115c634 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMap.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Tiled +{ + public sealed class TiledMap : IDisposable + { + private readonly List _imageLayers; + private readonly List _layers; + private readonly Dictionary _layersByName; + private readonly List _objectLayers; + private readonly List _tileLayers; + private readonly List _tilesets; + + public string Name { get; } + public int Width { get; } + public int Height { get; } + public int TileWidth { get; } + public int TileHeight { get; } + public TiledMapTileDrawOrder RenderOrder { get; } + public TiledMapOrientation Orientation { get; } + public TiledMapProperties Properties { get; } + public ReadOnlyCollection Tilesets { get; } + public ReadOnlyCollection Layers { get; } + public ReadOnlyCollection ImageLayers { get; } + public ReadOnlyCollection TileLayers { get; } + public ReadOnlyCollection ObjectLayers { get; } + + public Color? BackgroundColor { get; set; } + + public int WidthInPixels => Width * TileWidth; + public int HeightInPixels => Height * TileHeight; + + private TiledMap() + { + _layers = new List(); + Layers = new ReadOnlyCollection(_layers); + _imageLayers = new List(); + ImageLayers = new ReadOnlyCollection(_imageLayers); + _tileLayers = new List(); + TileLayers = new ReadOnlyCollection(_tileLayers); + _objectLayers = new List(); + ObjectLayers = new ReadOnlyCollection(_objectLayers); + _layersByName = new Dictionary(); + _tilesets = new List(); + Tilesets = new ReadOnlyCollection(_tilesets); + Properties = new TiledMapProperties(); + } + + public TiledMap(string name, int width, int height, int tileWidth, int tileHeight, + TiledMapTileDrawOrder renderOrder, TiledMapOrientation orientation) + : this() + { + Name = name; + Width = width; + Height = height; + TileWidth = tileWidth; + TileHeight = tileHeight; + RenderOrder = renderOrder; + Orientation = orientation; + } + + public void Dispose() + { + foreach (var layer in _layers) + layer.Dispose(); + } + + internal void AddTileset(TiledMapTileset tileset) + { + _tilesets.Add(tileset); + } + + public void AddLayer(TiledMapLayer layer) + { + _layers.Add(layer); + _layersByName.Add(layer.Name, layer); + + var imageLayer = layer as TiledMapImageLayer; + if (imageLayer != null) + _imageLayers.Add(imageLayer); + + var tileLayer = layer as TiledMapTileLayer; + if (tileLayer != null) + _tileLayers.Add(tileLayer); + + var objectLayer = layer as TiledMapObjectLayer; + if (objectLayer != null) + _objectLayers.Add(objectLayer); + } + + public TiledMapLayer GetLayer(string layerName) + { + TiledMapLayer layer; + _layersByName.TryGetValue(layerName, out layer); + return layer; + } + + public T GetLayer(string layerName) + where T : TiledMapLayer + { + return GetLayer(layerName) as T; + } + + public TiledMapTileset GetTilesetByTileGlobalIdentifier(int tileIdentifier) + { + // ReSharper disable once LoopCanBeConvertedToQuery + foreach (var tileset in _tilesets) + if (tileset.ContainsGlobalIdentifier(tileIdentifier)) + return tileset; + return null; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapEllipseObject.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapEllipseObject.cs new file mode 100644 index 00000000..18a2678b --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapEllipseObject.cs @@ -0,0 +1,20 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; + +namespace MonoGame.Extended.Tiled +{ + public sealed class TiledMapEllipseObject : TiledMapObject + { + public Vector2 Center { get; } + public float RadiusX { get; } + public float RadiusY { get; } + + internal TiledMapEllipseObject(ContentReader input) + : base(input) + { + RadiusX = Size.Width / 2.0f; + RadiusY = Size.Height / 2.0f; + Center = new Vector2(Position.X + RadiusX, Position.Y); + } + } +} diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapHelper.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapHelper.cs new file mode 100644 index 00000000..a397bc1a --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapHelper.cs @@ -0,0 +1,52 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Tiled +{ + internal static class TiledMapHelper + { + // 4 vertices per tile + public const int VerticesPerTile = 4; + // 2 triangles per tile (mesh), with each triangle indexing 3 out of 4 vertices, so 6 vertices + public const int IndicesPerTile = 6; + // by using ushort type for indices we are limited to indexing vertices from 0 to 65535 + // this limits us on how many vertices can fit inside a single vertex buffer (65536 vertices) + public const int MaximumVerticesPerModel = ushort.MaxValue + 1; + // and thus, we know how many tiles we can fit inside a vertex or index buffer (16384 tiles) + public const int MaximumTilesPerGeometryContent = MaximumVerticesPerModel / VerticesPerTile; + // and thus, we also know the maximum number of indices we can fit inside a single index buffer (98304 indices) + public const int MaximumIndicesPerModel = MaximumTilesPerGeometryContent * IndicesPerTile; + // these optimal maximum numbers of course are not considering texture bindings which would practically lower the actual number of tiles per vertex / index buffer + // thus, the reason why it is a good to have ONE giant tileset (at least per layer) + + internal static Rectangle GetTileSourceRectangle(int localTileIdentifier, int tileWidth, int tileHeight, + int columns, int margin, int spacing) + { + var x = margin + localTileIdentifier % columns * (tileWidth + spacing); + var y = margin + localTileIdentifier / columns * (tileHeight + spacing); + return new Rectangle(x, y, tileWidth, tileHeight); + } + + internal static Point2 GetOrthogonalPosition(int tileX, int tileY, int tileWidth, int tileHeight) + { + var x = tileX * tileWidth; + var y = tileY * tileHeight; + return new Vector2(x, y); + } + + internal static Point2 GetIsometricPosition(int tileX, int tileY, int tileWidth, int tileHeight) + { + // You can think of an isometric Tiled map as a regular orthogonal map that is rotated -45 degrees + // i.e.: the origin (0, 0) is the top tile of the diamond grid; + // (mapWidth, 0) is the far right tile of the diamond grid + // (0, mapHeight) is the far left tile of the diamond grid + // (mapWidth, mapHeight) is the bottom tile of the diamond grid + + var halfTileWidth = tileWidth * 0.5f; + var halfTileHeight = tileHeight * 0.5f; + // -1 because we want the top the tile-diamond (top-center) to be the origin in tile space + var x = (tileX - tileY - 1) * halfTileWidth; + var y = (tileX + tileY) * halfTileHeight; + return new Vector2(x, y); + } + } +} diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapImageLayer.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapImageLayer.cs new file mode 100644 index 00000000..4115c0f1 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapImageLayer.cs @@ -0,0 +1,23 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Content; + +namespace MonoGame.Extended.Tiled +{ + public class TiledMapImageLayer : TiledMapLayer, IMovable + { + public Vector2 Position { get; set; } + public Texture2D Texture { get; } + + internal TiledMapImageLayer(ContentReader input) + : base(input) + { + var textureAssetName = input.GetRelativeAssetName(input.ReadString()); + Texture = input.ContentManager.Load(textureAssetName); + var x = input.ReadSingle(); + var y = input.ReadSingle(); + Position = new Vector2(x, y); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapLayer.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapLayer.cs new file mode 100644 index 00000000..7d3f42d5 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapLayer.cs @@ -0,0 +1,50 @@ +using System; +using Microsoft.Xna.Framework.Content; +using MonoGame.Extended.Graphics; + +namespace MonoGame.Extended.Tiled +{ + public abstract class TiledMapLayer : IDisposable + { + internal TiledMapLayerModel[] Models; + internal TiledMapLayerAnimatedModel[] AnimatedModels; + + public string Name { get; } + public TiledMapProperties Properties { get; } + public bool IsVisible { get; set; } + public float Opacity { get; set; } + public float OffsetX { get; } + public float OffsetY { get; } + + internal TiledMapLayer(ContentReader input) + { + Models = null; + AnimatedModels = null; + + Name = input.ReadString(); + Properties = new TiledMapProperties(); + IsVisible = input.ReadBoolean(); + Opacity = input.ReadSingle(); + OffsetX = input.ReadSingle(); + OffsetY = input.ReadSingle(); + + input.ReadTiledMapProperties(Properties); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool diposing) + { + if (!diposing) + return; + if (Models == null) + return; + foreach (var model in Models) + model.Dispose(); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapLayerType.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapLayerType.cs new file mode 100644 index 00000000..b8dafeb3 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapLayerType.cs @@ -0,0 +1,9 @@ +namespace MonoGame.Extended.Tiled +{ + public enum TiledMapLayerType : byte + { + ImageLayer = 0, + TileLayer = 1, + ObjectLayer = 2 + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObject.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObject.cs new file mode 100644 index 00000000..1e9c6bce --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObject.cs @@ -0,0 +1,39 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; + +namespace MonoGame.Extended.Tiled +{ + public abstract class TiledMapObject + { + public int Identifier { get; } + public string Name { get; set; } + public string Type { get; } + public TiledMapProperties Properties { get; } + public bool IsVisible { get; set; } + public float Opacity { get; set; } + public float Rotation { get; set; } + public Vector2 Position { get; } + public Size2 Size { get; set; } + + internal TiledMapObject(ContentReader input) + { + Identifier = input.ReadInt32(); + Name = input.ReadString(); + Type = input.ReadString(); + Position = new Vector2(input.ReadSingle(), input.ReadSingle()); + var width = input.ReadSingle(); + var height = input.ReadSingle(); + Size = new Size2(width, height); + Rotation = input.ReadSingle(); + IsVisible = input.ReadBoolean(); + + Properties = new TiledMapProperties(); + input.ReadTiledMapProperties(Properties); + } + + public override string ToString() + { + return $"{Identifier}"; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectDrawOrder.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectDrawOrder.cs new file mode 100644 index 00000000..1668f664 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectDrawOrder.cs @@ -0,0 +1,8 @@ +namespace MonoGame.Extended.Tiled +{ + public enum TiledMapObjectDrawOrder : byte + { + TopDown, + Index, + } +} diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectLayer.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectLayer.cs new file mode 100644 index 00000000..180b61a6 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectLayer.cs @@ -0,0 +1,53 @@ +using System; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; + +namespace MonoGame.Extended.Tiled +{ + public class TiledMapObjectLayer : TiledMapLayer + { + public Color Color { get; } + public TiledMapObjectDrawOrder DrawOrder { get; } + public TiledMapObject[] Objects { get; } + + internal TiledMapObjectLayer(ContentReader input, TiledMap map) + : base(input) + { + Color = input.ReadColor(); + DrawOrder = (TiledMapObjectDrawOrder)input.ReadByte(); + + var objectCount = input.ReadInt32(); + + Objects = new TiledMapObject[objectCount]; + + for (var i = 0; i < objectCount; i++) + { + TiledMapObject @object; + + var objectType = (TiledMapObjectType)input.ReadByte(); + switch (objectType) + { + case TiledMapObjectType.Rectangle: + @object = new TiledMapRectangleObject(input); + break; + case TiledMapObjectType.Tile: + @object = new TiledMapTileObject(input, map); + break; + case TiledMapObjectType.Ellipse: + @object = new TiledMapEllipseObject(input); + break; + case TiledMapObjectType.Polygon: + @object = new TiledMapPolygonObject(input); + break; + case TiledMapObjectType.Polyline: + @object = new TiledMapPolylineObject(input); + break; + default: + throw new ArgumentOutOfRangeException(); + } + + Objects[i] = @object; + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectType.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectType.cs new file mode 100644 index 00000000..305500aa --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapObjectType.cs @@ -0,0 +1,11 @@ +namespace MonoGame.Extended.Tiled +{ + public enum TiledMapObjectType : byte + { + Rectangle, + Ellipse, + Polygon, + Polyline, + Tile + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapOrientation.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapOrientation.cs new file mode 100644 index 00000000..798c1c86 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapOrientation.cs @@ -0,0 +1,9 @@ +namespace MonoGame.Extended.Tiled +{ + public enum TiledMapOrientation + { + Orthogonal, + Isometric, + Staggered + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapPolygonObject.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapPolygonObject.cs new file mode 100644 index 00000000..333cf4ae --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapPolygonObject.cs @@ -0,0 +1,23 @@ +using Microsoft.Xna.Framework.Content; + +namespace MonoGame.Extended.Tiled +{ + public sealed class TiledMapPolygonObject : TiledMapObject + { + public Point2[] Points { get; } + + internal TiledMapPolygonObject(ContentReader input) + : base(input) + { + var pointCount = input.ReadInt32(); + Points = new Point2[pointCount]; + + for (var i = 0; i < pointCount; i++) + { + var x = input.ReadSingle(); + var y = input.ReadSingle(); + Points[i] = new Point2(x, y); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapPolylineObject.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapPolylineObject.cs new file mode 100644 index 00000000..361a4a73 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapPolylineObject.cs @@ -0,0 +1,23 @@ +using Microsoft.Xna.Framework.Content; + +namespace MonoGame.Extended.Tiled +{ + public sealed class TiledMapPolylineObject : TiledMapObject + { + public Point2[] Points { get; } + + internal TiledMapPolylineObject(ContentReader input) + : base(input) + { + var pointCount = input.ReadInt32(); + Points = new Point2[pointCount]; + + for (var i = 0; i < pointCount; i++) + { + var x = input.ReadSingle(); + var y = input.ReadSingle(); + Points[i] = new Point2(x, y); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapProperties.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapProperties.cs new file mode 100644 index 00000000..912de714 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapProperties.cs @@ -0,0 +1,8 @@ +using System.Collections.Generic; + +namespace MonoGame.Extended.Tiled +{ + public class TiledMapProperties : Dictionary + { + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapReader.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapReader.cs new file mode 100644 index 00000000..67271216 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapReader.cs @@ -0,0 +1,106 @@ +using System; +using Microsoft.Xna.Framework.Content; +using MonoGame.Extended.Graphics; + +namespace MonoGame.Extended.Tiled +{ + public class TiledMapReader : ContentTypeReader + { + protected override TiledMap Read(ContentReader input, TiledMap existingInstance) + { + if (existingInstance != null) + return existingInstance; + ; + + var value = ReadMetaData(input); + ReadTilesets(input, value); + ReadLayers(input, value); + + return value; + } + + private static TiledMap ReadMetaData(ContentReader input) + { + var name = input.AssetName; + var width = input.ReadInt32(); + var height = input.ReadInt32(); + var tileWidth = input.ReadInt32(); + var tileHeight = input.ReadInt32(); + var backgroundColor = input.ReadColor(); + var renderOrder = (TiledMapTileDrawOrder)input.ReadByte(); + var orientation = (TiledMapOrientation)input.ReadByte(); + + var map = new TiledMap(name, width, height, tileWidth, tileHeight, renderOrder, orientation) + { + BackgroundColor = backgroundColor + }; + + input.ReadTiledMapProperties(map.Properties); + + return map; + } + + private static void ReadTilesets(ContentReader input, TiledMap map) + { + var tilesetCount = input.ReadInt32(); + + for (var i = 0; i < tilesetCount; i++) + { + var tileset = new TiledMapTileset(input); + map.AddTileset(tileset); + } + } + + private static void ReadLayers(ContentReader input, TiledMap map) + { + var layerCount = input.ReadInt32(); + + for (var i = 0; i < layerCount; i++) + { + TiledMapLayer layer; + + var layerType = (TiledMapLayerType)input.ReadByte(); + switch (layerType) + { + case TiledMapLayerType.ImageLayer: + layer = new TiledMapImageLayer(input); + break; + case TiledMapLayerType.TileLayer: + layer = new TiledMapTileLayer(input, map); + break; + case TiledMapLayerType.ObjectLayer: + layer = new TiledMapObjectLayer(input, map); + break; + default: + throw new ArgumentOutOfRangeException(); + } + + if (layerType != TiledMapLayerType.ObjectLayer) + ReadModels(input, layer, map); + + map.AddLayer(layer); + } + } + + private static void ReadModels(ContentReader input, TiledMapLayer layer, TiledMap map) + { + var modelCount = input.ReadInt32(); + var animatedModelCount = input.ReadInt32(); + + var models = layer.Models = new TiledMapLayerModel[modelCount]; + var animatedModels = layer.AnimatedModels = new TiledMapLayerAnimatedModel[animatedModelCount]; + + var animatedModelIndex = 0; + + for (var modelIndex = 0; modelIndex < modelCount; modelIndex++) + { + var isAnimated = input.ReadBoolean(); + var model = isAnimated ? new TiledMapLayerAnimatedModel(input, map) : new TiledMapLayerModel(input); + + models[modelIndex] = model; + if (isAnimated) + animatedModels[animatedModelIndex++] = (TiledMapLayerAnimatedModel)model; + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapRectangleObject.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapRectangleObject.cs new file mode 100644 index 00000000..fd2ff101 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapRectangleObject.cs @@ -0,0 +1,12 @@ +using Microsoft.Xna.Framework.Content; + +namespace MonoGame.Extended.Tiled +{ + public sealed class TiledMapRectangleObject : TiledMapObject + { + internal TiledMapRectangleObject(ContentReader input) + : base(input) + { + } + } +} diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTile.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTile.cs new file mode 100644 index 00000000..bbac7669 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTile.cs @@ -0,0 +1,29 @@ +namespace MonoGame.Extended.Tiled +{ + public struct TiledMapTile + { + internal readonly uint GlobalTileIdentifierWithFlags; + + public readonly ushort X; + public readonly ushort Y; + + public int GlobalIdentifier => (int)(GlobalTileIdentifierWithFlags & ~(uint)TiledMapTileFlipFlags.All); + public bool IsFlippedHorizontally => (GlobalTileIdentifierWithFlags & (uint)TiledMapTileFlipFlags.FlipHorizontally) != 0; + public bool IsFlippedVertically => (GlobalTileIdentifierWithFlags & (uint)TiledMapTileFlipFlags.FlipVertically) != 0; + public bool IsFlippedDiagonally => (GlobalTileIdentifierWithFlags & (uint)TiledMapTileFlipFlags.FlipDiagonally) != 0; + public bool IsBlank => GlobalIdentifier == 0; + public TiledMapTileFlipFlags Flags => (TiledMapTileFlipFlags)(GlobalTileIdentifierWithFlags & (uint)TiledMapTileFlipFlags.All); + + internal TiledMapTile(uint globalTileIdentifierWithFlags, ushort x, ushort y) + { + GlobalTileIdentifierWithFlags = globalTileIdentifierWithFlags; + X = x; + Y = y; + } + + public override string ToString() + { + return $"GlobalIdentifier: {GlobalIdentifier}, Flags: {Flags}"; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledRenderOrder.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileDrawOrder.cs similarity index 51% rename from Source/MonoGame.Extended/Maps/Tiled/TiledRenderOrder.cs rename to Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileDrawOrder.cs index 18f903f3..a40b596e 100644 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledRenderOrder.cs +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileDrawOrder.cs @@ -1,6 +1,6 @@ -namespace MonoGame.Extended.Maps.Tiled +namespace MonoGame.Extended.Tiled { - public enum TiledRenderOrder + public enum TiledMapTileDrawOrder : byte { RightDown, RightUp, diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileFlipFlags.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileFlipFlags.cs new file mode 100644 index 00000000..f883bad4 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileFlipFlags.cs @@ -0,0 +1,14 @@ +using System; + +namespace MonoGame.Extended.Tiled +{ + [Flags] + public enum TiledMapTileFlipFlags : uint + { + None = 0, + FlipDiagonally = 0x20000000, + FlipVertically = 0x40000000, + FlipHorizontally = 0x80000000, + All = FlipDiagonally | FlipVertically | FlipHorizontally + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileLayer.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileLayer.cs new file mode 100644 index 00000000..2a630395 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileLayer.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; + +namespace MonoGame.Extended.Tiled +{ + public class TiledMapTileLayer : TiledMapLayer + { + // immutable + public int Width { get; } + public int Height { get; } + public int TileWidth { get; } + public int TileHeight { get; } + public ReadOnlyCollection Tiles { get; } + + internal TiledMapTileLayer(ContentReader input, TiledMap map) + : base(input) + { + Width = input.ReadInt32(); + Height = input.ReadInt32(); + TileWidth = map.TileWidth; + TileHeight = map.TileHeight; + + var tileCount = input.ReadInt32(); + var tiles = new TiledMapTile[tileCount]; + Tiles = new ReadOnlyCollection(tiles); + + for (var i = 0; i < tileCount; i++) + { + var globalTileIdentifierWithFlags = input.ReadUInt32(); + var x = input.ReadUInt16(); + var y = input.ReadUInt16(); + tiles[i] = new TiledMapTile(globalTileIdentifierWithFlags, x, y); + } + } + + public bool TryGetTile(int x, int y, out TiledMapTile? tile) + { + var index = x + y * Width; + if ((index < 0) || (index >= Tiles.Count)) + { + tile = null; + return false; + } + + tile = Tiles[index]; + return true; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileObject.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileObject.cs new file mode 100644 index 00000000..20e37da4 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileObject.cs @@ -0,0 +1,21 @@ +using System.Linq; +using Microsoft.Xna.Framework.Content; +using MonoGame.Extended.Shapes; + +namespace MonoGame.Extended.Tiled +{ + public sealed class TiledMapTileObject : TiledMapObject + { + public TiledMapTilesetTile TilesetTile { get; } + + public TiledMapTileObject(ContentReader input, TiledMap map) + : base(input) + { + var globalTileIdentifierWithFlags = input.ReadUInt32(); + var tile = new TiledMapTile(globalTileIdentifierWithFlags, 0, 0); + var tileset = map.GetTilesetByTileGlobalIdentifier(tile.GlobalIdentifier); + var localTileIdentifier = tile.GlobalIdentifier - tileset.FirstGlobalIdentifier; + TilesetTile = tileset.Tiles.FirstOrDefault(x => x.LocalTileIdentifier == localTileIdentifier); + } + } +} diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileset.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileset.cs new file mode 100644 index 00000000..dd4357dd --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTileset.cs @@ -0,0 +1,94 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Content; + +namespace MonoGame.Extended.Tiled +{ + public class TiledMapTileset + { + private readonly Dictionary _animatedTilesByLocalTileIdentifier; + + public string Name => Texture.Name; + public Texture2D Texture { get; } + public int FirstGlobalIdentifier { get; } + public int TileWidth { get; } + public int TileHeight { get; } + public int Spacing { get; } + public int Margin { get; } + public int TileCount { get; } + public int Columns { get; } + public ReadOnlyCollection Tiles { get; private set; } + public ReadOnlyCollection AnimatedTiles { get; private set; } + public TiledMapProperties Properties { get; } + + internal TiledMapTileset(ContentReader input) + { + var textureAssetName = input.GetRelativeAssetName(input.ReadString()); + var animatedTiles = new List(); + var tiles = new List(); + + _animatedTilesByLocalTileIdentifier = new Dictionary(); + + Texture = input.ContentManager.Load(textureAssetName); + FirstGlobalIdentifier = input.ReadInt32(); + TileWidth = input.ReadInt32(); + TileHeight = input.ReadInt32(); + TileCount = input.ReadInt32(); + Spacing = input.ReadInt32(); + Margin = input.ReadInt32(); + Columns = input.ReadInt32(); + Properties = new TiledMapProperties(); + + var explicitTileCount = input.ReadInt32(); + + for (var tileIndex = 0; tileIndex < explicitTileCount; tileIndex++) + { + var localTileIdentifier = input.ReadInt32(); + var animationFramesCount = input.ReadInt32(); + + TiledMapTilesetTile tilesetTile; + + if (animationFramesCount <= 0) + { + tilesetTile = new TiledMapTilesetTile(localTileIdentifier); + } + else + { + var animatedTilesetTile = new TiledMapTilesetAnimatedTile(this, input, localTileIdentifier, animationFramesCount); + animatedTiles.Add(animatedTilesetTile); + _animatedTilesByLocalTileIdentifier.Add(localTileIdentifier, animatedTilesetTile); + tilesetTile = animatedTilesetTile; + } + + tiles.Add(tilesetTile); + + input.ReadTiledMapProperties(tilesetTile.Properties); + } + + input.ReadTiledMapProperties(Properties); + + Tiles = new ReadOnlyCollection(tiles); + AnimatedTiles = new ReadOnlyCollection(animatedTiles); + } + + public Rectangle GetTileRegion(int localTileIdentifier) + { + return TiledMapHelper.GetTileSourceRectangle(localTileIdentifier, TileWidth, TileHeight, Columns, Margin, Spacing); + } + + public TiledMapTilesetAnimatedTile GetAnimatedTilesetTileByLocalTileIdentifier(int localTileIdentifier) + { + TiledMapTilesetAnimatedTile animatedTile; + _animatedTilesByLocalTileIdentifier.TryGetValue(localTileIdentifier, out animatedTile); + return animatedTile; + } + + public bool ContainsGlobalIdentifier(int globalIdentifier) + { + return globalIdentifier >= FirstGlobalIdentifier && globalIdentifier < FirstGlobalIdentifier + TileCount; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetAnimatedTile.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetAnimatedTile.cs new file mode 100644 index 00000000..71ea3828 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetAnimatedTile.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; + +namespace MonoGame.Extended.Tiled +{ + public class TiledMapTilesetAnimatedTile : TiledMapTilesetTile + { + private readonly List _animationFrames = + new List(); + + private int _frameIndex; + private TimeSpan _timer; + + public ReadOnlyCollection AnimationFrames { get; } + public TiledMapTilesetTileAnimationFrame CurrentAnimationFrame { get; private set; } + + // ReSharper disable once SuggestBaseTypeForParameter + internal TiledMapTilesetAnimatedTile(TiledMapTileset tileset, ContentReader input, int localTileIdentifier, int animationFramesCount) + : base(localTileIdentifier) + { + AnimationFrames = new ReadOnlyCollection(_animationFrames); + _timer = TimeSpan.Zero; + + for (var i = 0; i < animationFramesCount; i++) + { + var localTileIdentifierForFrame = input.ReadInt32(); + var frameDurationInMilliseconds = input.ReadInt32(); + var tileSetTileFrame = new TiledMapTilesetTileAnimationFrame(tileset, localTileIdentifierForFrame, frameDurationInMilliseconds); + _animationFrames.Add(tileSetTileFrame); + CurrentAnimationFrame = AnimationFrames[0]; + } + } + + public void Update(GameTime gameTime) + { + if (_animationFrames.Count == 0) + return; + + _timer += gameTime.ElapsedGameTime; + if (_timer <= CurrentAnimationFrame.Duration) + return; + + _timer -= CurrentAnimationFrame.Duration; + _frameIndex = (_frameIndex + 1) % AnimationFrames.Count; + CurrentAnimationFrame = AnimationFrames[_frameIndex]; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetTile.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetTile.cs new file mode 100644 index 00000000..062cd21b --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetTile.cs @@ -0,0 +1,14 @@ +namespace MonoGame.Extended.Tiled +{ + public class TiledMapTilesetTile + { + internal TiledMapTilesetTile(int localTileIdentifier) + { + LocalTileIdentifier = localTileIdentifier; + Properties = new TiledMapProperties(); + } + + public int LocalTileIdentifier { get; set; } + public TiledMapProperties Properties { get; private set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetTileAnimationFrame.cs b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetTileAnimationFrame.cs new file mode 100644 index 00000000..c1771db1 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/Tiled/TiledMapTilesetTileAnimationFrame.cs @@ -0,0 +1,47 @@ +using System; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Tiled +{ + public struct TiledMapTilesetTileAnimationFrame + { + public readonly int LocalTileIdentifier; + public readonly TimeSpan Duration; + public readonly Vector2[] TextureCoordinates; + + internal TiledMapTilesetTileAnimationFrame(TiledMapTileset tileset, int localTileIdentifier, int durationInMilliseconds) + { + LocalTileIdentifier = localTileIdentifier; + Duration = new TimeSpan(0, 0, 0, 0, durationInMilliseconds); + TextureCoordinates = new Vector2[4]; + CreateTextureCoordinates(tileset); + } + + private void CreateTextureCoordinates(TiledMapTileset tileset) + { + var sourceRectangle = tileset.GetTileRegion(LocalTileIdentifier); + var texture = tileset.Texture; + var texelLeft = (sourceRectangle.X + 0.5f) / texture.Width; + var texelTop = (sourceRectangle.Y + 0.5f) / texture.Height; + var texelRight = (sourceRectangle.X + sourceRectangle.Width) / (float)texture.Width; + var texelBottom = (sourceRectangle.Y + sourceRectangle.Height) / (float)texture.Height; + + TextureCoordinates[0].X = texelLeft; + TextureCoordinates[0].Y = texelTop; + + TextureCoordinates[1].X = texelRight; + TextureCoordinates[1].Y = texelTop; + + TextureCoordinates[2].X = texelLeft; + TextureCoordinates[2].Y = texelBottom; + + TextureCoordinates[3].X = texelRight; + TextureCoordinates[3].Y = texelBottom; + } + + public override string ToString() + { + return $"{LocalTileIdentifier}:{Duration}"; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tiled/packages.config b/Source/MonoGame.Extended.Tiled/packages.config new file mode 100644 index 00000000..28c01444 --- /dev/null +++ b/Source/MonoGame.Extended.Tiled/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tweening.nuspec b/Source/MonoGame.Extended.Tweening.nuspec new file mode 100644 index 00000000..7edb8f0e --- /dev/null +++ b/Source/MonoGame.Extended.Tweening.nuspec @@ -0,0 +1,34 @@ + + + + + MonoGame.Extended.Tweening + $version$ + + A tweening system to make MonoGame more awesome. + + Dylan Wilson + MonoGame.Extended.Tweening + Craftwork Games + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE + https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png + false + + Copyright 2017 - Craftwork Games + monogame extended animations tweening + + + + + + + + + + + + + + + diff --git a/Source/MonoGame.Extended.Tweening/DelayTween.cs b/Source/MonoGame.Extended.Tweening/DelayTween.cs new file mode 100644 index 00000000..155c67f7 --- /dev/null +++ b/Source/MonoGame.Extended.Tweening/DelayTween.cs @@ -0,0 +1,20 @@ +using MonoGame.Extended.Animations; + +namespace MonoGame.Extended.Tweening +{ + public class DelayTween : Animation + { + public DelayTween(float duration) + : base(null, true) + { + Duration = duration; + } + + public float Duration { get; set; } + + protected override bool OnUpdate(float deltaTime) + { + return CurrentTime >= Duration; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tweening/EasingFunctions.cs b/Source/MonoGame.Extended.Tweening/EasingFunctions.cs new file mode 100644 index 00000000..2eee1a5b --- /dev/null +++ b/Source/MonoGame.Extended.Tweening/EasingFunctions.cs @@ -0,0 +1,122 @@ +using System; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Tweening +{ + public delegate float EasingFunction(float value); + + public static class EasingFunctions + { + public static float Linear(float value) => value; + + public static float CubicEaseIn(float value) => Power.EaseIn(value, 2); + public static float CubicEaseOut(float value) => Power.EaseOut(value, 2); + public static float CubicEaseInOut(float value) => Power.EaseInOut(value, 2); + + public static float QuadraticEaseIn(float value) => Power.EaseIn(value, 3); + public static float QuadraticEaseOut(float value) => Power.EaseOut(value, 3); + public static float QuadraticEaseInOut(float value) => Power.EaseInOut(value, 3); + + public static float QuarticEaseIn(float value) => Power.EaseIn(value, 4); + public static float QuarticEaseOut(float value) => Power.EaseOut(value, 4); + public static float QuarticEaseInOut(float value) => Power.EaseInOut(value, 4); + + public static float QuinticEaseIn(float value) => Power.EaseIn(value, 5); + public static float QuinticEaseOut(float value) => Power.EaseOut(value, 5); + public static float QuinticEaseInOut(float value) => Power.EaseInOut(value, 5); + + public static float SineEaseIn(float value) + => (float) Math.Sin(value*MathHelper.PiOver2 - MathHelper.PiOver2) + 1; + + public static float SineEaseOut(float value) => (float) Math.Sin(value*MathHelper.PiOver2); + + public static float SineEaseInOut(float value) + => (float) (Math.Sin(value*MathHelper.Pi - MathHelper.PiOver2) + 1)/2; + + public static float ExponentialIn(float value) => (float) Math.Pow(2, 10*(value - 1)); + public static float ExponentialOut(float value) => Out(value, ExponentialIn); + public static float ExponentialInOut(float value) => InOut(value, ExponentialIn); + + public static float ElasticIn(float value) + { + const int oscillations = 1; + const float springiness = 3f; + var e = (Math.Exp(springiness*value) - 1)/(Math.Exp(springiness) - 1); + return (float) (e*Math.Sin((MathHelper.PiOver2 + MathHelper.TwoPi*oscillations)*value)); + } + + public static float ElasticOut(float value) => Out(value, ElasticIn); + public static float ElasticInOut(float value) => InOut(value, ElasticIn); + + public static float BackIn(float value) + { + const float amplitude = 1f; + return (float) (Math.Pow(value, 3) - value*amplitude*Math.Sin(value*MathHelper.Pi)); + } + + public static float BackOut(float value) => Out(value, BackIn); + public static float BackInOut(float value) => InOut(value, BackIn); + + public static float BounceOut(float value) => Out(value, BounceIn); + public static float BounceInOut(float value) => InOut(value, BounceIn); + + public static float BounceIn(float value) + { + const float bounceConst1 = 2.75f; + var bounceConst2 = (float) Math.Pow(bounceConst1, 2); + + value = 1 - value; //flip x-axis + + if (value < 1/bounceConst1) // big bounce + return 1f - bounceConst2*value*value; + + if (value < 2/bounceConst1) + return 1 - (float) (bounceConst2*Math.Pow(value - 1.5f/bounceConst1, 2) + .75); + + if (value < 2.5/bounceConst1) + return 1 - (float) (bounceConst2*Math.Pow(value - 2.25f/bounceConst1, 2) + .9375); + + //small bounce + return 1f - (float) (bounceConst2*Math.Pow(value - 2.625f/bounceConst1, 2) + .984375); + } + + + private static float Out(float value, EasingFunction function) + { + return 1 - function(1 - value); + } + + private static float InOut(float value, EasingFunction function) + { + if (value < 0.5f) + return 0.5f*function(value*2); + + return 1f - 0.5f*function(2 - value*2); + } + + private static class Power + { + public static float EaseIn(double value, int power) + { + return (float) Math.Pow(value, power); + } + + public static float EaseOut(double value, int power) + { + var sign = power%2 == 0 ? -1 : 1; + return (float) (sign*(Math.Pow(value - 1, power) + sign)); + } + + public static float EaseInOut(double s, int power) + { + s *= 2; + + if (s < 1) + return EaseIn(s, power)/2; + + var sign = power%2 == 0 ? -1 : 1; + return (float) (sign/2.0*(Math.Pow(s - 2, power) + sign*2)); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tweening/FluentTweening.cs b/Source/MonoGame.Extended.Tweening/FluentTweening.cs new file mode 100644 index 00000000..403b3b1d --- /dev/null +++ b/Source/MonoGame.Extended.Tweening/FluentTweening.cs @@ -0,0 +1,98 @@ +using System; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Tweening +{ + public static class FluentTweening + { + internal static TweeningComponent TweeningComponent { get; set; } + + public static TweenGroup CreateTweenGroup(this T target, Action onCompleteAction = null, + bool disposeOnComplete = true) + where T : class + { + var tweenGroup = new TweenGroup(target, onCompleteAction, disposeOnComplete); + TweeningComponent.AddTween(tweenGroup); + return tweenGroup; + } + + public static TweenChain CreateTweenChain(this T target, Action onCompleteAction = null, + bool disposeOnComplete = true) + { + var tweenGroup = new TweenChain(target, onCompleteAction, disposeOnComplete); + TweeningComponent.AddTween(tweenGroup); + return tweenGroup; + } + + public static TweenAnimation MoveTo(this TweenAnimation tweenAnimation, Vector2 position, + float duration, EasingFunction easingFunction) + where T : IMovable + { + var movable = tweenAnimation.Target; + tweenAnimation.Tweens.Add(new PropertyTween(() => movable.Position, v => movable.Position = v, + position, duration, easingFunction)); + return tweenAnimation; + } + + public static TweenAnimation Move(this TweenAnimation tweenAnimation, Vector2 direction, float duration, + EasingFunction easingFunction) + where T : IMovable + { + var movable = tweenAnimation.Target; + return MoveTo(tweenAnimation, movable.Position + direction, duration, easingFunction); + } + + public static TweenAnimation RotateTo(this TweenAnimation tweenAnimation, float radians, float duration, + EasingFunction easingFunction) + where T : IRotatable + { + var rotatable = tweenAnimation.Target; + tweenAnimation.Tweens.Add(new PropertyTween(() => rotatable.Rotation, v => rotatable.Rotation = v, + radians, duration, easingFunction)); + return tweenAnimation; + } + + public static TweenAnimation Rotate(this TweenAnimation tweenAnimation, float radians, float duration, + EasingFunction easingFunction) + where T : IRotatable + { + var rotatable = tweenAnimation.Target; + return RotateTo(tweenAnimation, rotatable.Rotation + radians, duration, easingFunction); + } + + public static TweenAnimation ScaleTo(this TweenAnimation tweenAnimation, Vector2 scale, float duration, + EasingFunction easingFunction) + where T : IScalable + { + var scalable = tweenAnimation.Target; + tweenAnimation.Tweens.Add(new PropertyTween(() => scalable.Scale, v => scalable.Scale = v, scale, + duration, easingFunction)); + return tweenAnimation; + } + + public static TweenAnimation Scale(this TweenAnimation tweenAnimation, Vector2 scale, float duration, + EasingFunction easingFunction) + where T : IScalable + { + var scalable = tweenAnimation.Target; + return ScaleTo(tweenAnimation, scalable.Scale*scale, duration, easingFunction); + } + + public static TweenAnimation Delay(this TweenAnimation tweenAnimation, float duration) + { + tweenAnimation.Tweens.Add(new DelayTween(duration)); + return tweenAnimation; + } + + public static TweenAnimation FadeTo(this TweenAnimation tweenAnimation, float alpha, float duration, + EasingFunction easingFunction) + where T : IColorable + { + var colorable = tweenAnimation.Target; + var initialColor = colorable.Color; + tweenAnimation.Tweens.Add(new PropertyTween(() => initialColor.A/255f, + a => colorable.Color = initialColor*a, alpha, duration, easingFunction)); + return tweenAnimation; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tweening/MonoGame.Extended.Tweening.csproj b/Source/MonoGame.Extended.Tweening/MonoGame.Extended.Tweening.csproj new file mode 100644 index 00000000..e6012fb9 --- /dev/null +++ b/Source/MonoGame.Extended.Tweening/MonoGame.Extended.Tweening.csproj @@ -0,0 +1,66 @@ + + + + + 10.0 + Debug + AnyCPU + {1CF61F4F-A2EE-49BF-95D0-379E870DE90E} + Library + MonoGame.Extended.Tweening + MonoGame.Extended.Tweening + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile111 + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + {587ce536-216f-41a1-b223-ae502c125b09} + MonoGame.Extended.Animations + + + {41724c52-3d50-45bb-81eb-3c8a247eafd1} + MonoGame.Extended + + + + + + + + + + + + + + + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll + + + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tweening/Properties/AssemblyInfo.cs b/Source/MonoGame.Extended.Tweening/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..2f70d15f --- /dev/null +++ b/Source/MonoGame.Extended.Tweening/Properties/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System.Resources; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Tweening")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Tweening")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.Tweening/PropertyTween.cs b/Source/MonoGame.Extended.Tweening/PropertyTween.cs new file mode 100644 index 00000000..8dbe5f95 --- /dev/null +++ b/Source/MonoGame.Extended.Tweening/PropertyTween.cs @@ -0,0 +1,65 @@ +using System; +using System.Linq.Expressions; +using MonoGame.Extended.Animations; + +namespace MonoGame.Extended.Tweening +{ + public class PropertyTween : Animation + where T : struct + { + protected static Func Add; + protected static Func Subtract; + protected static Func Multiply; + + private readonly Func _getValue; + private readonly Action _setValue; + private float _currentMultiplier; + private T? _initialValue; + + static PropertyTween() + { + var a = Expression.Parameter(typeof(T)); + var b = Expression.Parameter(typeof(T)); + var c = Expression.Parameter(typeof(float)); + Add = Expression.Lambda>(Expression.Add(a, b), a, b).Compile(); + Subtract = Expression.Lambda>(Expression.Subtract(a, b), a, b).Compile(); + Multiply = Expression.Lambda>(Expression.Multiply(a, c), a, c).Compile(); + } + + public PropertyTween(Func getValue, Action setValue, T targetValue, float duration, + EasingFunction easingFunction) + : base(null, true) + { + _getValue = getValue; + _setValue = setValue; + TargetValue = targetValue; + Duration = duration; + EasingFunction = easingFunction; + } + + public T TargetValue { get; } + public float Duration { get; } + public EasingFunction EasingFunction { get; set; } + + protected override bool OnUpdate(float deltaTime) + { + if (!_initialValue.HasValue) + _initialValue = _getValue(); + + _currentMultiplier = EasingFunction(CurrentTime/Duration); + + if (CurrentTime >= Duration) + { + CurrentTime = Duration; + _currentMultiplier = 1.0f; + return true; + } + + var difference = Subtract(TargetValue, _initialValue.Value); + var multiply = Multiply(difference, _currentMultiplier); + var newValue = Add(_initialValue.Value, multiply); + _setValue(newValue); + return false; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tweening/TweenAnimation.cs b/Source/MonoGame.Extended.Tweening/TweenAnimation.cs new file mode 100644 index 00000000..9bd1c31f --- /dev/null +++ b/Source/MonoGame.Extended.Tweening/TweenAnimation.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using MonoGame.Extended.Animations; + +namespace MonoGame.Extended.Tweening +{ + public abstract class TweenAnimation : Animation + { + protected TweenAnimation(T target, Action onCompleteAction = null, bool disposeOnComplete = true) + : base(onCompleteAction, disposeOnComplete) + { + Target = target; + Tweens = new List(); + } + + public T Target { get; } + public IList Tweens { get; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tweening/TweenChain.cs b/Source/MonoGame.Extended.Tweening/TweenChain.cs new file mode 100644 index 00000000..a678525e --- /dev/null +++ b/Source/MonoGame.Extended.Tweening/TweenChain.cs @@ -0,0 +1,27 @@ +using System; + +namespace MonoGame.Extended.Tweening +{ + public class TweenChain : TweenAnimation + { + private int _currentTweenIndex; + + public TweenChain(T target, Action onCompleteAction = null, bool disposeOnComplete = true) + : base(target, onCompleteAction, disposeOnComplete) + { + _currentTweenIndex = 0; + } + + protected override bool OnUpdate(float deltaTime) + { + var currentTween = Tweens[_currentTweenIndex]; + + currentTween.Update(deltaTime); + + if (currentTween.IsComplete) + _currentTweenIndex++; + + return _currentTweenIndex >= Tweens.Count; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tweening/TweenGroup.cs b/Source/MonoGame.Extended.Tweening/TweenGroup.cs new file mode 100644 index 00000000..17b8fb19 --- /dev/null +++ b/Source/MonoGame.Extended.Tweening/TweenGroup.cs @@ -0,0 +1,21 @@ +using System; +using System.Linq; + +namespace MonoGame.Extended.Tweening +{ + public class TweenGroup : TweenAnimation + { + public TweenGroup(T target, Action onCompleteAction = null, bool disposeOnComplete = true) + : base(target, onCompleteAction, disposeOnComplete) + { + } + + protected override bool OnUpdate(float deltaTime) + { + foreach (var animation in Tweens) + animation.Update(deltaTime); + + return Tweens.All(t => t.IsComplete); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tweening/TweeningComponent.cs b/Source/MonoGame.Extended.Tweening/TweeningComponent.cs new file mode 100644 index 00000000..954d5a42 --- /dev/null +++ b/Source/MonoGame.Extended.Tweening/TweeningComponent.cs @@ -0,0 +1,27 @@ +using Microsoft.Xna.Framework; +using MonoGame.Extended.Animations; + +namespace MonoGame.Extended.Tweening +{ + public class TweeningComponent : GameComponent + { + private readonly AnimationComponent _animationComponent; + + public TweeningComponent(Game game, AnimationComponent animationComponent) + : base(game) + { + _animationComponent = animationComponent; + FluentTweening.TweeningComponent = this; + } + + public void AddTween(Animation tweenAnimation) + { + _animationComponent.Animations.Add(tweenAnimation); + } + + public bool RemoveTween(Animation tweenAnimation) + { + return _animationComponent.Animations.Remove(tweenAnimation); + } + } +} diff --git a/Source/MonoGame.Extended.Tweening/packages.config b/Source/MonoGame.Extended.Tweening/packages.config new file mode 100644 index 00000000..28c01444 --- /dev/null +++ b/Source/MonoGame.Extended.Tweening/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.nuspec b/Source/MonoGame.Extended.nuspec index 9dc7110c..bb2ce0f7 100644 --- a/Source/MonoGame.Extended.nuspec +++ b/Source/MonoGame.Extended.nuspec @@ -1,33 +1,37 @@ - - + + + MonoGame.Extended - 0.2.0.0 - MonoGame.Extended - Dylan Wilson - Craftwork Games - https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png - false + $version$ Makes MonoGame more awesome. Tile based maps, Bitmap Fonts, Sprites and SpriteBatch extensions, Input Listeners, Texture Atlases, 2D Camera, Viewport Adapters. + Dylan Wilson + MonoGame.Extended + Craftwork Games + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended/blob/master/LICENSE + https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png + false - Copyright 2015 - Craftwork Games - monogame pipeline bmfont tiled texture atlas input event sprite + Copyright 2017 - Craftwork Games + monogame extended pipeline bmfont tiled texture atlas input event sprite + + + - + diff --git a/Source/MonoGame.Extended.sln b/Source/MonoGame.Extended.sln index 1290d6ac..95b9a280 100644 --- a/Source/MonoGame.Extended.sln +++ b/Source/MonoGame.Extended.sln @@ -1,77 +1,191 @@ - Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.24720.0 +# Visual Studio 15 +VisualStudioVersion = 15.0.26228.4 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended", "MonoGame.Extended\MonoGame.Extended.csproj", "{41724C52-3D50-45BB-81EB-3C8A247EAFD1}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{068B9F42-8B49-4FAF-9D8C-701862FAC799}" ProjectSection(SolutionItems) = preProject + MonoGame.Extended.Animations.nuspec = MonoGame.Extended.Animations.nuspec + MonoGame.Extended.Entities.nuspec = MonoGame.Extended.Entities.nuspec + MonoGame.Extended.Graphics.nuspec = MonoGame.Extended.Graphics.nuspec + MonoGame.Extended.Gui.nuspec = MonoGame.Extended.Gui.nuspec + MonoGame.Extended.Input.nuspec = MonoGame.Extended.Input.nuspec + MonoGame.Extended.NuclexGui.nuspec = MonoGame.Extended.NuclexGui.nuspec MonoGame.Extended.nuspec = MonoGame.Extended.nuspec + MonoGame.Extended.Particles.nuspec = MonoGame.Extended.Particles.nuspec + MonoGame.Extended.SceneGraphs.nuspec = MonoGame.Extended.SceneGraphs.nuspec + MonoGame.Extended.Tiled.nuspec = MonoGame.Extended.Tiled.nuspec + MonoGame.Extended.Tweening.nuspec = MonoGame.Extended.Tweening.nuspec ..\README.md = ..\README.md readme.txt = readme.txt EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Content.Pipeline", "MonoGame.Extended.Content.Pipeline\MonoGame.Extended.Content.Pipeline.csproj", "{28CD24BD-432C-4987-9E9D-65CFCF120EA0}" + ProjectSection(ProjectDependencies) = postProject + {8E425575-378A-4F83-88C9-F8BEBAD227C9} = {8E425575-378A-4F83-88C9-F8BEBAD227C9} + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC} = {9B3AB8A1-78AA-471A-AFD0-B10B932115BC} + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902} = {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902} + EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{E5A148A1-DE7B-4D17-ABE8-831B9673B863}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Tests", "MonoGame.Extended.Tests\MonoGame.Extended.Tests.csproj", "{CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Content.Pipeline.Tests", "MonoGame.Extended.Content.Pipeline.Tests\MonoGame.Extended.Content.Pipeline.Tests.csproj", "{75D76507-9CB0-4A60-BE46-696DF6E7AA6C}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Demos", "Demos", "{932F8931-4A8D-4205-BFCF-98E794207786}" + ProjectSection(SolutionItems) = preProject + Demos\README.md = Demos\README.md + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.BitmapFonts", "Demos\Demo.BitmapFonts\Demo.BitmapFonts.csproj", "{18CCC0B0-4FF9-4C23-BD46-483132E1D986}" ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Camera", "Demos\Demo.Camera\Demo.Camera.csproj", "{01020F15-6905-4D0E-8874-3259DFE7CEB7}" ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.InputListeners", "Demos\Demo.InputListeners\Demo.InputListeners.csproj", "{AE49D5C1-94DB-4A78-9A59-C58AEB03D62D}" ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.SceneGraphs", "Demos\Demo.SceneGraphs\Demo.SceneGraphs.csproj", "{274091CB-D74C-4DCB-849D-75D29622ADD2}" ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.SpaceGame", "Demos\Demo.SpaceGame\Demo.SpaceGame.csproj", "{D5314E38-8F5A-48A5-A092-BD8BBEACB5DD}" ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} + {E41B1841-FB13-489F-92DA-BEEE176A2C57} = {E41B1841-FB13-489F-92DA-BEEE176A2C57} {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Sprites", "Demos\Demo.Sprites\Demo.Sprites.csproj", "{7B1DAE14-0001-48E6-853D-C3D211982BAA}" ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.SpriteSheetAnimatons", "Demos\Demo.SpriteSheetAnimations\Demo.SpriteSheetAnimatons.csproj", "{B7965D5F-83D2-4C04-B9FE-7D5FBF365F93}" ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} + {E41B1841-FB13-489F-92DA-BEEE176A2C57} = {E41B1841-FB13-489F-92DA-BEEE176A2C57} {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.TiledMaps", "Demos\Demo.TiledMaps\Demo.TiledMaps.csproj", "{1AA1A796-CFC6-4663-8D23-FBB9CE62744B}" ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902} = {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.ViewportAdapters", "Demos\Demo.ViewportAdapters\Demo.ViewportAdapters.csproj", "{5B629714-40BF-4584-939F-B69A9689B360}" ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Particles", "Demos\Demo.Particles\Demo.Particles.csproj", "{5BD30E9B-D5BF-46CB-AA34-3E2ED0819952}" ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Animations", "Demos\Demo.Animations\Demo.Animations.csproj", "{1C21F12C-FA6A-4759-B66F-EA2F67003BF4}" + ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} + {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Gui", "Demos\Demo.Gui\Demo.Gui.csproj", "{62E83B48-D581-4E85-B7E7-9A87A811A99C}" + ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} + {8E425575-378A-4F83-88C9-F8BEBAD227C9} = {8E425575-378A-4F83-88C9-F8BEBAD227C9} + {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Screens", "Demos\Demo.Screens\Demo.Screens.csproj", "{50C281D9-1D55-4E5C-836B-94110EC09605}" + ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} + {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Platformer", "Demos\Demo.Platformer\Demo.Platformer.csproj", "{A7A5E924-A49D-4052-ACA2-894161007B00}" + ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} + {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.EntityComponentSystem", "Demos\Demo.EntityComponentSystem\Demo.EntityComponentSystem.csproj", "{A2B9E42A-B2D1-476D-9F4B-E64824DA57EE}" + ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} + {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Batching", "Demos\Demo.Batching\Demo.Batching.csproj", "{5A251894-0462-47B6-9A63-BE26AA8CABDD}" + ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC} = {9B3AB8A1-78AA-471A-AFD0-B10B932115BC} + {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.NuclexGui", "Demos\Demo.NuclexGui\Demo.NuclexGui.csproj", "{8003BA78-CB44-46B5-85A2-2A6440C3EFDC}" + ProjectSection(ProjectDependencies) = postProject + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} + {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {28CD24BD-432C-4987-9E9D-65CFCF120EA0} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Collisions", "MonoGame.Extended.Collisions\MonoGame.Extended.Collisions.csproj", "{02562C6F-5BFB-467E-8A95-68B6CE2D635A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Gui", "MonoGame.Extended.Gui\MonoGame.Extended.Gui.csproj", "{8E425575-378A-4F83-88C9-F8BEBAD227C9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Graphics", "MonoGame.Extended.Graphics\MonoGame.Extended.Graphics.csproj", "{9B3AB8A1-78AA-471A-AFD0-B10B932115BC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Tiled", "MonoGame.Extended.Tiled\MonoGame.Extended.Tiled.csproj", "{07B2ADE2-73E3-41C4-AEA1-D5566A5AB902}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Content.Pipeline.Tiled", "MonoGame.Extended.Content.Pipeline.Tiled\MonoGame.Extended.Content.Pipeline.Tiled.csproj", "{96BE0F14-3DC8-43B9-992F-654BD36CC3C7}" + ProjectSection(ProjectDependencies) = postProject + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902} = {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Content.Pipeline.Tests", "Tests\MonoGame.Extended.Content.Pipeline.Tests\MonoGame.Extended.Content.Pipeline.Tests.csproj", "{75D76507-9CB0-4A60-BE46-696DF6E7AA6C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Content.Pipeline.Tests.Tiled", "Tests\MonoGame.Extended.Content.Pipeline.Tests.Tiled\MonoGame.Extended.Content.Pipeline.Tests.Tiled.csproj", "{90B096CB-61A5-485F-BA3E-2530166E5E72}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Gui.Tests", "Tests\MonoGame.Extended.Gui.Tests\MonoGame.Extended.Gui.Tests.csproj", "{43CBA868-9BFC-4E02-8A7A-142C603B087E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Tests", "Tests\MonoGame.Extended.Tests\MonoGame.Extended.Tests.csproj", "{CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Tiled.Tests", "Tests\MonoGame.Extended.Tiled.Tests\MonoGame.Extended.Tiled.Tests.csproj", "{A88FC71D-12E3-42A5-AFF3-89C6498C3C65}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.NuclexGui", "MonoGame.Extended.NuclexGui\MonoGame.Extended.NuclexGui.csproj", "{D8BC4F21-E71D-46CE-B6D3-259F1E0DFABA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Particles", "MonoGame.Extended.Particles\MonoGame.Extended.Particles.csproj", "{6C8B9E29-D09B-4901-80FD-45AAA35882C6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Entities", "MonoGame.Extended.Entities\MonoGame.Extended.Entities.csproj", "{35FD1F05-AF04-469A-B37A-F9B36C34401C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.SceneGraphs", "MonoGame.Extended.SceneGraphs\MonoGame.Extended.SceneGraphs.csproj", "{FE61C3D7-D96D-4AA4-9EF1-17E457BB2C7C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Input", "MonoGame.Extended.Input\MonoGame.Extended.Input.csproj", "{49C87598-994C-49B5-BBB3-7FFC342635D3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Tweening", "MonoGame.Extended.Tweening\MonoGame.Extended.Tweening.csproj", "{1CF61F4F-A2EE-49BF-95D0-379E870DE90E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Animations", "MonoGame.Extended.Animations\MonoGame.Extended.Animations.csproj", "{587CE536-216F-41A1-B223-AE502C125B09}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Extended.Content.Pipeline.Animations", "MonoGame.Extended.Content.Pipeline.Animations\MonoGame.Extended.Content.Pipeline.Animations.csproj", "{E41B1841-FB13-489F-92DA-BEEE176A2C57}" + ProjectSection(ProjectDependencies) = postProject + {587CE536-216F-41A1-B223-AE502C125B09} = {587CE536-216F-41A1-B223-AE502C125B09} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Content.Pipeline", "Content.Pipeline", "{FC5BAF35-C9D5-4036-A6C8-796CCA6390C3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -96,22 +210,6 @@ Global {28CD24BD-432C-4987-9E9D-65CFCF120EA0}.Release|Any CPU.Build.0 = Release|Any CPU {28CD24BD-432C-4987-9E9D-65CFCF120EA0}.Release|x86.ActiveCfg = Release|Any CPU {28CD24BD-432C-4987-9E9D-65CFCF120EA0}.Release|x86.Build.0 = Release|Any CPU - {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Debug|x86.ActiveCfg = Debug|Any CPU - {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Debug|x86.Build.0 = Debug|Any CPU - {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Release|Any CPU.Build.0 = Release|Any CPU - {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Release|x86.ActiveCfg = Release|Any CPU - {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Release|x86.Build.0 = Release|Any CPU - {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Debug|x86.ActiveCfg = Debug|Any CPU - {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Debug|x86.Build.0 = Debug|Any CPU - {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Release|Any CPU.Build.0 = Release|Any CPU - {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Release|x86.ActiveCfg = Release|Any CPU - {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Release|x86.Build.0 = Release|Any CPU {18CCC0B0-4FF9-4C23-BD46-483132E1D986}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {18CCC0B0-4FF9-4C23-BD46-483132E1D986}.Debug|Any CPU.Build.0 = Debug|Any CPU {18CCC0B0-4FF9-4C23-BD46-483132E1D986}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -192,13 +290,212 @@ Global {5BD30E9B-D5BF-46CB-AA34-3E2ED0819952}.Release|Any CPU.Build.0 = Release|Any CPU {5BD30E9B-D5BF-46CB-AA34-3E2ED0819952}.Release|x86.ActiveCfg = Release|Any CPU {5BD30E9B-D5BF-46CB-AA34-3E2ED0819952}.Release|x86.Build.0 = Release|Any CPU + {1C21F12C-FA6A-4759-B66F-EA2F67003BF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C21F12C-FA6A-4759-B66F-EA2F67003BF4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C21F12C-FA6A-4759-B66F-EA2F67003BF4}.Debug|x86.ActiveCfg = Debug|Any CPU + {1C21F12C-FA6A-4759-B66F-EA2F67003BF4}.Debug|x86.Build.0 = Debug|Any CPU + {1C21F12C-FA6A-4759-B66F-EA2F67003BF4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C21F12C-FA6A-4759-B66F-EA2F67003BF4}.Release|Any CPU.Build.0 = Release|Any CPU + {1C21F12C-FA6A-4759-B66F-EA2F67003BF4}.Release|x86.ActiveCfg = Release|Any CPU + {1C21F12C-FA6A-4759-B66F-EA2F67003BF4}.Release|x86.Build.0 = Release|Any CPU + {62E83B48-D581-4E85-B7E7-9A87A811A99C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62E83B48-D581-4E85-B7E7-9A87A811A99C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62E83B48-D581-4E85-B7E7-9A87A811A99C}.Debug|x86.ActiveCfg = Debug|Any CPU + {62E83B48-D581-4E85-B7E7-9A87A811A99C}.Debug|x86.Build.0 = Debug|Any CPU + {62E83B48-D581-4E85-B7E7-9A87A811A99C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {62E83B48-D581-4E85-B7E7-9A87A811A99C}.Release|Any CPU.Build.0 = Release|Any CPU + {62E83B48-D581-4E85-B7E7-9A87A811A99C}.Release|x86.ActiveCfg = Release|Any CPU + {62E83B48-D581-4E85-B7E7-9A87A811A99C}.Release|x86.Build.0 = Release|Any CPU + {50C281D9-1D55-4E5C-836B-94110EC09605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50C281D9-1D55-4E5C-836B-94110EC09605}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50C281D9-1D55-4E5C-836B-94110EC09605}.Debug|x86.ActiveCfg = Debug|Any CPU + {50C281D9-1D55-4E5C-836B-94110EC09605}.Debug|x86.Build.0 = Debug|Any CPU + {50C281D9-1D55-4E5C-836B-94110EC09605}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50C281D9-1D55-4E5C-836B-94110EC09605}.Release|Any CPU.Build.0 = Release|Any CPU + {50C281D9-1D55-4E5C-836B-94110EC09605}.Release|x86.ActiveCfg = Release|Any CPU + {50C281D9-1D55-4E5C-836B-94110EC09605}.Release|x86.Build.0 = Release|Any CPU + {A7A5E924-A49D-4052-ACA2-894161007B00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7A5E924-A49D-4052-ACA2-894161007B00}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7A5E924-A49D-4052-ACA2-894161007B00}.Debug|x86.ActiveCfg = Debug|Any CPU + {A7A5E924-A49D-4052-ACA2-894161007B00}.Debug|x86.Build.0 = Debug|Any CPU + {A7A5E924-A49D-4052-ACA2-894161007B00}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7A5E924-A49D-4052-ACA2-894161007B00}.Release|Any CPU.Build.0 = Release|Any CPU + {A7A5E924-A49D-4052-ACA2-894161007B00}.Release|x86.ActiveCfg = Release|Any CPU + {A7A5E924-A49D-4052-ACA2-894161007B00}.Release|x86.Build.0 = Release|Any CPU + {A2B9E42A-B2D1-476D-9F4B-E64824DA57EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2B9E42A-B2D1-476D-9F4B-E64824DA57EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2B9E42A-B2D1-476D-9F4B-E64824DA57EE}.Debug|x86.ActiveCfg = Debug|Any CPU + {A2B9E42A-B2D1-476D-9F4B-E64824DA57EE}.Debug|x86.Build.0 = Debug|Any CPU + {A2B9E42A-B2D1-476D-9F4B-E64824DA57EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2B9E42A-B2D1-476D-9F4B-E64824DA57EE}.Release|Any CPU.Build.0 = Release|Any CPU + {A2B9E42A-B2D1-476D-9F4B-E64824DA57EE}.Release|x86.ActiveCfg = Release|Any CPU + {A2B9E42A-B2D1-476D-9F4B-E64824DA57EE}.Release|x86.Build.0 = Release|Any CPU + {5A251894-0462-47B6-9A63-BE26AA8CABDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A251894-0462-47B6-9A63-BE26AA8CABDD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A251894-0462-47B6-9A63-BE26AA8CABDD}.Debug|x86.ActiveCfg = Debug|Any CPU + {5A251894-0462-47B6-9A63-BE26AA8CABDD}.Debug|x86.Build.0 = Debug|Any CPU + {5A251894-0462-47B6-9A63-BE26AA8CABDD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A251894-0462-47B6-9A63-BE26AA8CABDD}.Release|Any CPU.Build.0 = Release|Any CPU + {5A251894-0462-47B6-9A63-BE26AA8CABDD}.Release|x86.ActiveCfg = Release|Any CPU + {5A251894-0462-47B6-9A63-BE26AA8CABDD}.Release|x86.Build.0 = Release|Any CPU + {8003BA78-CB44-46B5-85A2-2A6440C3EFDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8003BA78-CB44-46B5-85A2-2A6440C3EFDC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8003BA78-CB44-46B5-85A2-2A6440C3EFDC}.Debug|x86.ActiveCfg = Debug|Any CPU + {8003BA78-CB44-46B5-85A2-2A6440C3EFDC}.Debug|x86.Build.0 = Debug|Any CPU + {8003BA78-CB44-46B5-85A2-2A6440C3EFDC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8003BA78-CB44-46B5-85A2-2A6440C3EFDC}.Release|Any CPU.Build.0 = Release|Any CPU + {8003BA78-CB44-46B5-85A2-2A6440C3EFDC}.Release|x86.ActiveCfg = Release|Any CPU + {8003BA78-CB44-46B5-85A2-2A6440C3EFDC}.Release|x86.Build.0 = Release|Any CPU + {02562C6F-5BFB-467E-8A95-68B6CE2D635A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02562C6F-5BFB-467E-8A95-68B6CE2D635A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02562C6F-5BFB-467E-8A95-68B6CE2D635A}.Debug|x86.ActiveCfg = Debug|Any CPU + {02562C6F-5BFB-467E-8A95-68B6CE2D635A}.Debug|x86.Build.0 = Debug|Any CPU + {02562C6F-5BFB-467E-8A95-68B6CE2D635A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02562C6F-5BFB-467E-8A95-68B6CE2D635A}.Release|Any CPU.Build.0 = Release|Any CPU + {02562C6F-5BFB-467E-8A95-68B6CE2D635A}.Release|x86.ActiveCfg = Release|Any CPU + {02562C6F-5BFB-467E-8A95-68B6CE2D635A}.Release|x86.Build.0 = Release|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Debug|x86.ActiveCfg = Debug|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Debug|x86.Build.0 = Debug|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Release|Any CPU.Build.0 = Release|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Release|x86.ActiveCfg = Release|Any CPU + {8E425575-378A-4F83-88C9-F8BEBAD227C9}.Release|x86.Build.0 = Release|Any CPU + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC}.Debug|x86.ActiveCfg = Debug|Any CPU + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC}.Debug|x86.Build.0 = Debug|Any CPU + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC}.Release|Any CPU.Build.0 = Release|Any CPU + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC}.Release|x86.ActiveCfg = Release|Any CPU + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC}.Release|x86.Build.0 = Release|Any CPU + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902}.Debug|Any CPU.Build.0 = Debug|Any CPU + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902}.Debug|x86.ActiveCfg = Debug|Any CPU + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902}.Debug|x86.Build.0 = Debug|Any CPU + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902}.Release|Any CPU.ActiveCfg = Release|Any CPU + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902}.Release|Any CPU.Build.0 = Release|Any CPU + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902}.Release|x86.ActiveCfg = Release|Any CPU + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902}.Release|x86.Build.0 = Release|Any CPU + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7}.Debug|x86.ActiveCfg = Debug|Any CPU + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7}.Debug|x86.Build.0 = Debug|Any CPU + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7}.Release|Any CPU.Build.0 = Release|Any CPU + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7}.Release|x86.ActiveCfg = Release|Any CPU + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7}.Release|x86.Build.0 = Release|Any CPU + {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Debug|x86.ActiveCfg = Debug|Any CPU + {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Debug|x86.Build.0 = Debug|Any CPU + {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Release|Any CPU.Build.0 = Release|Any CPU + {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Release|x86.ActiveCfg = Release|Any CPU + {75D76507-9CB0-4A60-BE46-696DF6E7AA6C}.Release|x86.Build.0 = Release|Any CPU + {90B096CB-61A5-485F-BA3E-2530166E5E72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90B096CB-61A5-485F-BA3E-2530166E5E72}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90B096CB-61A5-485F-BA3E-2530166E5E72}.Debug|x86.ActiveCfg = Debug|Any CPU + {90B096CB-61A5-485F-BA3E-2530166E5E72}.Debug|x86.Build.0 = Debug|Any CPU + {90B096CB-61A5-485F-BA3E-2530166E5E72}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90B096CB-61A5-485F-BA3E-2530166E5E72}.Release|Any CPU.Build.0 = Release|Any CPU + {90B096CB-61A5-485F-BA3E-2530166E5E72}.Release|x86.ActiveCfg = Release|Any CPU + {90B096CB-61A5-485F-BA3E-2530166E5E72}.Release|x86.Build.0 = Release|Any CPU + {43CBA868-9BFC-4E02-8A7A-142C603B087E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43CBA868-9BFC-4E02-8A7A-142C603B087E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {43CBA868-9BFC-4E02-8A7A-142C603B087E}.Debug|x86.ActiveCfg = Debug|Any CPU + {43CBA868-9BFC-4E02-8A7A-142C603B087E}.Debug|x86.Build.0 = Debug|Any CPU + {43CBA868-9BFC-4E02-8A7A-142C603B087E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {43CBA868-9BFC-4E02-8A7A-142C603B087E}.Release|Any CPU.Build.0 = Release|Any CPU + {43CBA868-9BFC-4E02-8A7A-142C603B087E}.Release|x86.ActiveCfg = Release|Any CPU + {43CBA868-9BFC-4E02-8A7A-142C603B087E}.Release|x86.Build.0 = Release|Any CPU + {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Debug|x86.ActiveCfg = Debug|Any CPU + {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Debug|x86.Build.0 = Debug|Any CPU + {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Release|Any CPU.Build.0 = Release|Any CPU + {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Release|x86.ActiveCfg = Release|Any CPU + {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1}.Release|x86.Build.0 = Release|Any CPU + {A88FC71D-12E3-42A5-AFF3-89C6498C3C65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A88FC71D-12E3-42A5-AFF3-89C6498C3C65}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A88FC71D-12E3-42A5-AFF3-89C6498C3C65}.Debug|x86.ActiveCfg = Debug|Any CPU + {A88FC71D-12E3-42A5-AFF3-89C6498C3C65}.Debug|x86.Build.0 = Debug|Any CPU + {A88FC71D-12E3-42A5-AFF3-89C6498C3C65}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A88FC71D-12E3-42A5-AFF3-89C6498C3C65}.Release|Any CPU.Build.0 = Release|Any CPU + {A88FC71D-12E3-42A5-AFF3-89C6498C3C65}.Release|x86.ActiveCfg = Release|Any CPU + {A88FC71D-12E3-42A5-AFF3-89C6498C3C65}.Release|x86.Build.0 = Release|Any CPU + {D8BC4F21-E71D-46CE-B6D3-259F1E0DFABA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D8BC4F21-E71D-46CE-B6D3-259F1E0DFABA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8BC4F21-E71D-46CE-B6D3-259F1E0DFABA}.Debug|x86.ActiveCfg = Debug|Any CPU + {D8BC4F21-E71D-46CE-B6D3-259F1E0DFABA}.Debug|x86.Build.0 = Debug|Any CPU + {D8BC4F21-E71D-46CE-B6D3-259F1E0DFABA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D8BC4F21-E71D-46CE-B6D3-259F1E0DFABA}.Release|Any CPU.Build.0 = Release|Any CPU + {D8BC4F21-E71D-46CE-B6D3-259F1E0DFABA}.Release|x86.ActiveCfg = Release|Any CPU + {D8BC4F21-E71D-46CE-B6D3-259F1E0DFABA}.Release|x86.Build.0 = Release|Any CPU + {6C8B9E29-D09B-4901-80FD-45AAA35882C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C8B9E29-D09B-4901-80FD-45AAA35882C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C8B9E29-D09B-4901-80FD-45AAA35882C6}.Debug|x86.ActiveCfg = Debug|Any CPU + {6C8B9E29-D09B-4901-80FD-45AAA35882C6}.Debug|x86.Build.0 = Debug|Any CPU + {6C8B9E29-D09B-4901-80FD-45AAA35882C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C8B9E29-D09B-4901-80FD-45AAA35882C6}.Release|Any CPU.Build.0 = Release|Any CPU + {6C8B9E29-D09B-4901-80FD-45AAA35882C6}.Release|x86.ActiveCfg = Release|Any CPU + {6C8B9E29-D09B-4901-80FD-45AAA35882C6}.Release|x86.Build.0 = Release|Any CPU + {35FD1F05-AF04-469A-B37A-F9B36C34401C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35FD1F05-AF04-469A-B37A-F9B36C34401C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35FD1F05-AF04-469A-B37A-F9B36C34401C}.Debug|x86.ActiveCfg = Debug|Any CPU + {35FD1F05-AF04-469A-B37A-F9B36C34401C}.Debug|x86.Build.0 = Debug|Any CPU + {35FD1F05-AF04-469A-B37A-F9B36C34401C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35FD1F05-AF04-469A-B37A-F9B36C34401C}.Release|Any CPU.Build.0 = Release|Any CPU + {35FD1F05-AF04-469A-B37A-F9B36C34401C}.Release|x86.ActiveCfg = Release|Any CPU + {35FD1F05-AF04-469A-B37A-F9B36C34401C}.Release|x86.Build.0 = Release|Any CPU + {FE61C3D7-D96D-4AA4-9EF1-17E457BB2C7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE61C3D7-D96D-4AA4-9EF1-17E457BB2C7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE61C3D7-D96D-4AA4-9EF1-17E457BB2C7C}.Debug|x86.ActiveCfg = Debug|Any CPU + {FE61C3D7-D96D-4AA4-9EF1-17E457BB2C7C}.Debug|x86.Build.0 = Debug|Any CPU + {FE61C3D7-D96D-4AA4-9EF1-17E457BB2C7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE61C3D7-D96D-4AA4-9EF1-17E457BB2C7C}.Release|Any CPU.Build.0 = Release|Any CPU + {FE61C3D7-D96D-4AA4-9EF1-17E457BB2C7C}.Release|x86.ActiveCfg = Release|Any CPU + {FE61C3D7-D96D-4AA4-9EF1-17E457BB2C7C}.Release|x86.Build.0 = Release|Any CPU + {49C87598-994C-49B5-BBB3-7FFC342635D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49C87598-994C-49B5-BBB3-7FFC342635D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49C87598-994C-49B5-BBB3-7FFC342635D3}.Debug|x86.ActiveCfg = Debug|Any CPU + {49C87598-994C-49B5-BBB3-7FFC342635D3}.Debug|x86.Build.0 = Debug|Any CPU + {49C87598-994C-49B5-BBB3-7FFC342635D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49C87598-994C-49B5-BBB3-7FFC342635D3}.Release|Any CPU.Build.0 = Release|Any CPU + {49C87598-994C-49B5-BBB3-7FFC342635D3}.Release|x86.ActiveCfg = Release|Any CPU + {49C87598-994C-49B5-BBB3-7FFC342635D3}.Release|x86.Build.0 = Release|Any CPU + {1CF61F4F-A2EE-49BF-95D0-379E870DE90E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CF61F4F-A2EE-49BF-95D0-379E870DE90E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CF61F4F-A2EE-49BF-95D0-379E870DE90E}.Debug|x86.ActiveCfg = Debug|Any CPU + {1CF61F4F-A2EE-49BF-95D0-379E870DE90E}.Debug|x86.Build.0 = Debug|Any CPU + {1CF61F4F-A2EE-49BF-95D0-379E870DE90E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CF61F4F-A2EE-49BF-95D0-379E870DE90E}.Release|Any CPU.Build.0 = Release|Any CPU + {1CF61F4F-A2EE-49BF-95D0-379E870DE90E}.Release|x86.ActiveCfg = Release|Any CPU + {1CF61F4F-A2EE-49BF-95D0-379E870DE90E}.Release|x86.Build.0 = Release|Any CPU + {587CE536-216F-41A1-B223-AE502C125B09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {587CE536-216F-41A1-B223-AE502C125B09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {587CE536-216F-41A1-B223-AE502C125B09}.Debug|x86.ActiveCfg = Debug|Any CPU + {587CE536-216F-41A1-B223-AE502C125B09}.Debug|x86.Build.0 = Debug|Any CPU + {587CE536-216F-41A1-B223-AE502C125B09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {587CE536-216F-41A1-B223-AE502C125B09}.Release|Any CPU.Build.0 = Release|Any CPU + {587CE536-216F-41A1-B223-AE502C125B09}.Release|x86.ActiveCfg = Release|Any CPU + {587CE536-216F-41A1-B223-AE502C125B09}.Release|x86.Build.0 = Release|Any CPU + {E41B1841-FB13-489F-92DA-BEEE176A2C57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E41B1841-FB13-489F-92DA-BEEE176A2C57}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E41B1841-FB13-489F-92DA-BEEE176A2C57}.Debug|x86.ActiveCfg = Debug|Any CPU + {E41B1841-FB13-489F-92DA-BEEE176A2C57}.Debug|x86.Build.0 = Debug|Any CPU + {E41B1841-FB13-489F-92DA-BEEE176A2C57}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E41B1841-FB13-489F-92DA-BEEE176A2C57}.Release|Any CPU.Build.0 = Release|Any CPU + {E41B1841-FB13-489F-92DA-BEEE176A2C57}.Release|x86.ActiveCfg = Release|Any CPU + {E41B1841-FB13-489F-92DA-BEEE176A2C57}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1} = {E5A148A1-DE7B-4D17-ABE8-831B9673B863} - {75D76507-9CB0-4A60-BE46-696DF6E7AA6C} = {E5A148A1-DE7B-4D17-ABE8-831B9673B863} + {28CD24BD-432C-4987-9E9D-65CFCF120EA0} = {FC5BAF35-C9D5-4036-A6C8-796CCA6390C3} {18CCC0B0-4FF9-4C23-BD46-483132E1D986} = {932F8931-4A8D-4205-BFCF-98E794207786} {01020F15-6905-4D0E-8874-3259DFE7CEB7} = {932F8931-4A8D-4205-BFCF-98E794207786} {AE49D5C1-94DB-4A78-9A59-C58AEB03D62D} = {932F8931-4A8D-4205-BFCF-98E794207786} @@ -209,5 +506,19 @@ Global {1AA1A796-CFC6-4663-8D23-FBB9CE62744B} = {932F8931-4A8D-4205-BFCF-98E794207786} {5B629714-40BF-4584-939F-B69A9689B360} = {932F8931-4A8D-4205-BFCF-98E794207786} {5BD30E9B-D5BF-46CB-AA34-3E2ED0819952} = {932F8931-4A8D-4205-BFCF-98E794207786} + {1C21F12C-FA6A-4759-B66F-EA2F67003BF4} = {932F8931-4A8D-4205-BFCF-98E794207786} + {62E83B48-D581-4E85-B7E7-9A87A811A99C} = {932F8931-4A8D-4205-BFCF-98E794207786} + {50C281D9-1D55-4E5C-836B-94110EC09605} = {932F8931-4A8D-4205-BFCF-98E794207786} + {A7A5E924-A49D-4052-ACA2-894161007B00} = {932F8931-4A8D-4205-BFCF-98E794207786} + {A2B9E42A-B2D1-476D-9F4B-E64824DA57EE} = {932F8931-4A8D-4205-BFCF-98E794207786} + {5A251894-0462-47B6-9A63-BE26AA8CABDD} = {932F8931-4A8D-4205-BFCF-98E794207786} + {8003BA78-CB44-46B5-85A2-2A6440C3EFDC} = {932F8931-4A8D-4205-BFCF-98E794207786} + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} = {FC5BAF35-C9D5-4036-A6C8-796CCA6390C3} + {75D76507-9CB0-4A60-BE46-696DF6E7AA6C} = {E5A148A1-DE7B-4D17-ABE8-831B9673B863} + {90B096CB-61A5-485F-BA3E-2530166E5E72} = {E5A148A1-DE7B-4D17-ABE8-831B9673B863} + {43CBA868-9BFC-4E02-8A7A-142C603B087E} = {E5A148A1-DE7B-4D17-ABE8-831B9673B863} + {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1} = {E5A148A1-DE7B-4D17-ABE8-831B9673B863} + {A88FC71D-12E3-42A5-AFF3-89C6498C3C65} = {E5A148A1-DE7B-4D17-ABE8-831B9673B863} + {E41B1841-FB13-489F-92DA-BEEE176A2C57} = {FC5BAF35-C9D5-4036-A6C8-796CCA6390C3} EndGlobalSection EndGlobal diff --git a/Source/MonoGame.Extended/Angle.cs b/Source/MonoGame.Extended/Angle.cs new file mode 100644 index 00000000..6ade4842 --- /dev/null +++ b/Source/MonoGame.Extended/Angle.cs @@ -0,0 +1,224 @@ +/* +* ----------------------------------------------------------------------------- +* Original code from SlimMath project. http://code.google.com/p/slimmath/ +* Greetings to SlimDX Group. Original code published with the following license: +* ----------------------------------------------------------------------------- +* +* Copyright (c) 2007-2010 SlimDX Group +* +* 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. +*/ + +using System; +using System.Diagnostics; +using System.Runtime.Serialization; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended +{ + public enum AngleType : byte + { + Radian = 0, + Degree, + Revolution, //or Turn / cycle + Gradian // or Gon + } + + [DataContract] + [DebuggerDisplay("{ToString(),nq}")] + public struct Angle : IComparable, IEquatable + { + private const float _tau = (float) (Math.PI*2.0); + private const float _tauInv = (float) (0.5/Math.PI); + private const float _degreeRadian = (float) (Math.PI/180.0); + private const float _radianDegree = (float) (180.0/Math.PI); + private const float _gradianRadian = (float) (Math.PI/200.0); + private const float _radianGradian = (float) (200.0/Math.PI); + + [DataMember] + public float Radians { get; set; } + + public float Degrees + { + get { return Radians*_radianDegree; } + set { Radians = value*_degreeRadian; } + } + + public float Gradians + { + get { return Radians*_radianGradian; } + set { Radians = value*_gradianRadian; } + } + + public float Revolutions + { + get { return Radians*_tauInv; } + set { Radians = value*_tau; } + } + + public Angle(float value, AngleType angleType = AngleType.Radian) + { + switch (angleType) + { + default: + Radians = 0f; + break; + case AngleType.Radian: + Radians = value; + break; + case AngleType.Degree: + Radians = value*_degreeRadian; + break; + case AngleType.Revolution: + Radians = value*_tau; + break; + case AngleType.Gradian: + Radians = value*_gradianRadian; + break; + } + } + + public float GetValue(AngleType angleType) + { + switch (angleType) + { + default: + return 0f; + case AngleType.Radian: + return Radians; + case AngleType.Degree: + return Degrees; + case AngleType.Revolution: + return Revolutions; + case AngleType.Gradian: + return Gradians; + } + } + + public void Wrap() + { + var angle = Radians%_tau; + if (angle <= Math.PI) angle += _tau; + if (angle > Math.PI) angle -= _tau; + Radians = angle; + } + + public void WrapPositive() + { + Radians %= _tau; + if (Radians < 0d) Radians += _tau; + Radians = Radians; + } + + public static Angle FromVector(Vector2 vector) + { + return new Angle((float) Math.Atan2(-vector.Y, vector.X)); + } + + public Vector2 ToUnitVector() => ToVector(1); + + public Vector2 ToVector(float length) + { + return new Vector2(length*(float) Math.Cos(Radians), -length*(float) Math.Sin(Radians)); + } + + public static bool IsBetween(Angle value, Angle min, Angle end) + { + return end < min + ? (value >= min) || (value <= end) + : (value >= min) && (value <= end); + } + + public int CompareTo(Angle other) + { + WrapPositive(); + other.WrapPositive(); + return Radians.CompareTo(other.Radians); + } + + public bool Equals(Angle other) + { + WrapPositive(); + other.WrapPositive(); + return Radians.Equals(other.Radians); + } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) return false; + return obj is Angle && Equals((Angle) obj); + } + + public override int GetHashCode() + { + // ReSharper disable once NonReadonlyMemberInGetHashCode + return Radians.GetHashCode(); + } + + public static implicit operator float(Angle angle) + { + return angle.Radians; + } + + public static explicit operator Angle(float angle) + { + return new Angle(angle); + } + + public static Angle operator -(Angle angle) + { + return new Angle(-angle.Radians); + } + + public static bool operator ==(Angle a, Angle b) + { + return a.Equals(a); + } + + public static bool operator !=(Angle a, Angle b) + { + return !a.Equals(a); + } + + public static Angle operator -(Angle left, Angle right) + { + return new Angle(left.Radians - right.Radians); + } + + public static Angle operator *(Angle left, float right) + { + return new Angle(left.Radians*right); + } + + public static Angle operator *(float left, Angle right) + { + return new Angle(right.Radians*left); + } + + public static Angle operator +(Angle left, Angle right) + { + return new Angle(left.Radians + right.Radians); + } + + public override string ToString() + { + return $"{Radians} Radians"; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Animations/SpriteSheetAnimation.cs b/Source/MonoGame.Extended/Animations/SpriteSheetAnimation.cs deleted file mode 100644 index 136184a4..00000000 --- a/Source/MonoGame.Extended/Animations/SpriteSheetAnimation.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace MonoGame.Extended.Animations -{ - public class SpriteSheetAnimation - { - internal SpriteSheetAnimation(string name, int framesPerSecond, int[] frameIndicies) - { - Name = name; - FramesPerSecond = framesPerSecond; - FrameIndicies = frameIndicies; - } - - public string Name { get; private set; } - public int FramesPerSecond { get; set; } - public int[] FrameIndicies { get; private set; } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Animations/SpriteSheetAnimationGroup.cs b/Source/MonoGame.Extended/Animations/SpriteSheetAnimationGroup.cs deleted file mode 100644 index ac19fe94..00000000 --- a/Source/MonoGame.Extended/Animations/SpriteSheetAnimationGroup.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using MonoGame.Extended.TextureAtlases; - -namespace MonoGame.Extended.Animations -{ - public class SpriteSheetAnimationGroup - { - internal SpriteSheetAnimationGroup(IEnumerable frames, IEnumerable animations) - { - _frames = frames.ToArray(); - _animations = animations.ToDictionary(a => a.Name); - } - - private readonly Dictionary _animations; - public IEnumerable Animations - { - get { return _animations.Keys.OrderBy(i => i); } - } - - private readonly TextureRegion2D[] _frames; - public IEnumerable Frames => _frames; - - public SpriteSheetAnimation GetAnimation(string name) - { - return _animations[name]; - } - - public TextureRegion2D GetFrame(int index) - { - return _frames[index]; - } - - public SpriteSheetAnimation this[string name] => GetAnimation(name); - - public bool Contains(SpriteSheetAnimation animation) - { - return _animations.ContainsValue(animation); - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Animations/SpriteSheetAnimationGroupReader.cs b/Source/MonoGame.Extended/Animations/SpriteSheetAnimationGroupReader.cs deleted file mode 100644 index 4194b76e..00000000 --- a/Source/MonoGame.Extended/Animations/SpriteSheetAnimationGroupReader.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System.Collections.Generic; -using Microsoft.Xna.Framework.Content; -using MonoGame.Extended.Content; -using MonoGame.Extended.TextureAtlases; - -namespace MonoGame.Extended.Animations -{ - public class SpriteSheetAnimationGroupReader : ContentTypeReader - { - protected override SpriteSheetAnimationGroup Read(ContentReader reader, SpriteSheetAnimationGroup existingInstance) - { - var textureAtlasAssetName = reader.GetRelativeAssetPath(reader.ReadString()); - var textureAtlas = reader.ContentManager.Load(textureAtlasAssetName); - var frameCount = reader.ReadInt32(); - var regions = new List(); - var animations = new List(); - - for (var i = 0; i < frameCount; i++) - { - var frameName = reader.ReadString(); - var textureRegion = textureAtlas[frameName]; - regions.Add(textureRegion); - } - - var animationCount = reader.ReadInt32(); - - for (var i = 0; i < animationCount; i++) - { - var name = reader.ReadString(); - var framesPerSecond = reader.ReadInt32(); - - var frameIndexCount = reader.ReadInt32(); - var frameIndices = new int[frameIndexCount]; - - for (var f = 0; f < frameIndexCount; f++) - frameIndices[f] = reader.ReadInt32(); - - animations.Add(new SpriteSheetAnimation(name, framesPerSecond, frameIndices)); - } - - return new SpriteSheetAnimationGroup(regions, animations); - } - } -} diff --git a/Source/MonoGame.Extended/Animations/SpriteSheetAnimator.cs b/Source/MonoGame.Extended/Animations/SpriteSheetAnimator.cs deleted file mode 100644 index ab9cb452..00000000 --- a/Source/MonoGame.Extended/Animations/SpriteSheetAnimator.cs +++ /dev/null @@ -1,170 +0,0 @@ -using System; -using System.Linq; -using Microsoft.Xna.Framework; -using MonoGame.Extended.Sprites; - -namespace MonoGame.Extended.Animations -{ - public class SpriteSheetAnimator : IUpdate - { - public SpriteSheetAnimator(SpriteSheetAnimationGroup animationGroup) - : this(animationGroup, new Sprite(animationGroup.Frames.First())) - { - } - - public SpriteSheetAnimator(SpriteSheetAnimationGroup animationGroup, Sprite sprite) - { - _animationGroup = animationGroup; - _frameIndex = 0; - - Sprite = sprite; - IsPlaying = true; - IsLooping = true; - - if (Sprite != null && _animationGroup.Frames.Any()) - Sprite.TextureRegion = _animationGroup.Frames.First(); - } - - private readonly SpriteSheetAnimationGroup _animationGroup; - private SpriteSheetAnimation _currentAnimation; - private float _nextFrameDelay; - private int _frameIndex; - private Action _onCompleteAction; - - public Sprite Sprite { get; set; } - public bool IsPlaying { get; private set; } - public bool IsLooping { get; set; } - - //public IEnumerable Frames - //{ - // get { return _frames; } - //} - - //public IEnumerable Animations - //{ - // get { return _animations.Keys.OrderBy(i => i); } - //} - - //public int AddFrame(TextureRegion2D textureRegion) - //{ - // var index = _frames.Count; - // _frames.Add(textureRegion); - - // if (Sprite != null && Sprite.TextureRegion == null) - // Sprite.TextureRegion = textureRegion; - - // return index; - //} - - //public bool RemoveFrame(TextureRegion2D textureRegion) - //{ - // return _frames.Remove(textureRegion); - //} - - //public bool RemoveFrame(string name) - //{ - // var frame = GetFrame(name); - // return RemoveFrame(frame); - //} - - //public void RemoveFrameAt(int frameIndex) - //{ - // _frames.RemoveAt(frameIndex); - //} - - //public TextureRegion2D GetFrameAt(int index) - //{ - // return _frames[index]; - //} - - //public TextureRegion2D GetFrame(string name) - //{ - // return _frames.FirstOrDefault(f => f.Name == name); - //} - - //public SpriteSheetAnimation AddAnimation(string name, int framesPerSecond, int[] frameIndices) - //{ - // if (_animations.ContainsKey(name)) - // throw new InvalidOperationException(string.Format("Animator already contrains an animation called {0}", name)); - - // var animation = new SpriteSheetAnimation(name, framesPerSecond, frameIndices); - // _animations.Add(name, animation); - // return animation; - //} - - //public SpriteSheetAnimation AddAnimation(string name, int framesPerSecond, int firstFrameIndex, int lastFrameIndex) - //{ - // var frameIndices = new int[lastFrameIndex - firstFrameIndex + 1]; - - // for (var i = 0; i < frameIndices.Length; i++) - // frameIndices[i] = firstFrameIndex + i; - - // return AddAnimation(name, framesPerSecond, frameIndices); - //} - - //public bool RemoveAnimation(string name) - //{ - // SpriteSheetAnimation animation; - - // if (!_animations.TryGetValue(name, out animation)) - // return false; - - // if (_currentAnimation == animation) - // _currentAnimation = null; - - // _animations.Remove(name); - // return true; - //} - - public void PlayAnimation(SpriteSheetAnimation animation, Action onCompleteAction = null) - { - if (!_animationGroup.Contains(animation)) - throw new InvalidOperationException("Animation does not belong to this animator"); - - PlayAnimation(animation.Name); - } - - public void PlayAnimation(string name, Action onCompleteAction = null) - { - if(_currentAnimation != null && _currentAnimation.Name == name && IsPlaying) - return; - - _currentAnimation = _animationGroup.GetAnimation(name); - _frameIndex = 0; - _onCompleteAction = onCompleteAction; - IsPlaying = true; - } - - public void Update(GameTime gameTime) - { - if(!IsPlaying || _currentAnimation == null || _currentAnimation.FrameIndicies.Length == 0) - return; - - var deltaSeconds = (float) gameTime.ElapsedGameTime.TotalSeconds; - - if (_nextFrameDelay <= 0) - { - _nextFrameDelay = 1.0f / _currentAnimation.FramesPerSecond; - _frameIndex++; - - if (_frameIndex >= _currentAnimation.FrameIndicies.Length) - { - _frameIndex = 0; - - if (!IsLooping) - IsPlaying = false; - - var onCompleteAction = _onCompleteAction; - onCompleteAction?.Invoke(); - } - - var atlasIndex = _currentAnimation.FrameIndicies[_frameIndex]; - - if(Sprite != null) - Sprite.TextureRegion = _animationGroup.GetFrame(atlasIndex); - } - - _nextFrameDelay -= deltaSeconds; - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/BitmapFonts/BitmapFont.cs b/Source/MonoGame.Extended/BitmapFonts/BitmapFont.cs index 34dfb7e0..57037817 100644 --- a/Source/MonoGame.Extended/BitmapFonts/BitmapFont.cs +++ b/Source/MonoGame.Extended/BitmapFonts/BitmapFont.cs @@ -1,70 +1,85 @@ -using System; using System.Collections.Generic; using System.Linq; -using System.Text; using Microsoft.Xna.Framework; namespace MonoGame.Extended.BitmapFonts { - public class BitmapFont + public class BitmapFont { - internal BitmapFont(IEnumerable regions, int lineHeight) + private readonly Dictionary _characterMap; + + public BitmapFont(string name, IEnumerable regions, int lineHeight) { - _characterMap = regions.ToDictionary(r => r.Character);// BuildCharacterMap(textures, _fontFile); + _characterMap = regions.ToDictionary(r => r.Character); + + Name = name; LineHeight = lineHeight; } - private readonly Dictionary _characterMap; + public string Name { get; } + public int LineHeight { get; } + public int LetterSpacing { get; set; } = 0; - public int LineHeight { get; private set; } - - public BitmapFontRegion GetCharacterRegion(char character) + public BitmapFontRegion GetCharacterRegion(int character) { BitmapFontRegion region; return _characterMap.TryGetValue(character, out region) ? region : null; } - public Size GetSize(string text) + public static int GetUnicodeCodePoint(string s, int index) { - var width = 0; - var height = 0; - - foreach (var c in text) - { - BitmapFontRegion fontRegion; - - if (_characterMap.TryGetValue(c, out fontRegion)) - { - width += fontRegion.XAdvance; - - if (fontRegion.Height + fontRegion.YOffset > height) - height = fontRegion.Height + fontRegion.YOffset; - } - } - - return new Size(width, height); + return char.IsLowSurrogate(s, index) ? 0 : char.ConvertToUtf32(s, index); } - public Vector2 MeasureString(string text) + public Size2 MeasureString(string text) { - if (text == null) throw new ArgumentNullException(nameof(text)); + if (string.IsNullOrEmpty(text)) + return Size2.Empty; - var size = GetSize(text); - return new Vector2(size.Width, size.Height); - } - - public Vector2 MeasureString(StringBuilder stringBuilder) - { - if (stringBuilder == null) throw new ArgumentNullException(nameof(stringBuilder)); - - return MeasureString(stringBuilder.ToString()); + var stringRectangle = GetStringRectangle(text, Point.Zero); + return new Size2(stringRectangle.Width, stringRectangle.Height); } public Rectangle GetStringRectangle(string text, Vector2 position) { - var size = GetSize(text); - var p = position.ToPoint(); - return new Rectangle(p.X, p.Y, size.Width, size.Height); + return GetStringRectangle(text, position.ToPoint()); + } + + public Rectangle GetStringRectangle(string text, Point position) + { + var dx = position.X; + var dy = position.Y; + var rectangle = new Rectangle(dx, dy, 0, LineHeight); + + for (var i = 0; i < text.Length; i++) + { + var character = GetUnicodeCodePoint(text, i); + var fontRegion = GetCharacterRegion(character); + + if (fontRegion != null) + { + var characterPosition = new Point(dx + fontRegion.XOffset, dy + fontRegion.YOffset); + var right = characterPosition.X + fontRegion.Width; + + if (right > rectangle.Right) + rectangle.Width = right - rectangle.Left; + + dx += fontRegion.XAdvance + LetterSpacing; + } + + if (character == '\n') + { + rectangle.Height += LineHeight; + dx = position.X; + } + } + + return rectangle; + } + + public override string ToString() + { + return $"{Name}"; } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/BitmapFonts/BitmapFontExtensions.cs b/Source/MonoGame.Extended/BitmapFonts/BitmapFontExtensions.cs index 0acca2f3..b5209cd9 100644 --- a/Source/MonoGame.Extended/BitmapFonts/BitmapFontExtensions.cs +++ b/Source/MonoGame.Extended/BitmapFonts/BitmapFontExtensions.cs @@ -7,21 +7,49 @@ namespace MonoGame.Extended.BitmapFonts { public static class BitmapFontExtensions { - public static void DrawString(this SpriteBatch spriteBatch, BitmapFont bitmapFont, string text, Vector2 position, Color color) + /// + /// Adds a string to a batch of sprites for rendering using the specified font, text, position, color, rotation, + /// origin, scale, effects and layer. + /// + /// + /// A font for displaying text. + /// The text message to display. + /// The location (in screen coordinates) to draw the text. + /// + /// The to tint a sprite. Use for full color with no + /// tinting. + /// + /// Specifies the angle (in radians) to rotate the text about its origin. + /// The origin for each letter; the default is (0,0) which represents the upper-left corner. + /// Scale factor. + /// Effects to apply. + /// + /// The depth of a layer. By default, 0 represents the front layer and 1 represents a back layer. + /// Use SpriteSortMode if you want sprites to be sorted during drawing. + /// + /// Clips the boundaries of the text so that it's not drawn outside the clipping rectangle + public static void DrawString(this SpriteBatch spriteBatch, BitmapFont bitmapFont, string text, Vector2 position, + Color color, float rotation, Vector2 origin, Vector2 scale, SpriteEffects effect, float layerDepth, Rectangle? clippingRectangle = null) { + if (text == null) throw new ArgumentNullException(nameof(text)); + if (effect != SpriteEffects.None) throw new NotSupportedException($"{effect} is not currently supported for {nameof(BitmapFont)}"); + var dx = position.X; var dy = position.Y; - foreach (var character in text) + for (var i = 0; i < text.Length; i++) { + var character = BitmapFont.GetUnicodeCodePoint(text, i); var fontRegion = bitmapFont.GetCharacterRegion(character); if (fontRegion != null) { - var charPosition = new Vector2(dx + fontRegion.XOffset, dy + fontRegion.YOffset); + var characterPosition = new Vector2(dx + fontRegion.XOffset, dy + fontRegion.YOffset); + var characterOrigin = position - characterPosition + origin; - spriteBatch.Draw(fontRegion.TextureRegion, charPosition, color); - dx += fontRegion.XAdvance; + spriteBatch.Draw(fontRegion.TextureRegion, position, color, rotation, characterOrigin, scale, effect, layerDepth, clippingRectangle); + + dx += fontRegion.XAdvance + bitmapFont.LetterSpacing; } if (character == '\n') @@ -32,34 +60,80 @@ namespace MonoGame.Extended.BitmapFonts } } - public static void DrawString(this SpriteBatch spriteBatch, BitmapFont bitmapFont, string text, Vector2 position, Color color, int wrapWidth) + /// + /// Adds a string to a batch of sprites for rendering using the specified font, text, position, color, rotation, + /// origin, scale, effects and layer. + /// + /// + /// A font for displaying text. + /// The text message to display. + /// The location (in screen coordinates) to draw the text. + /// + /// The to tint a sprite. Use for full color with no + /// tinting. + /// + /// Specifies the angle (in radians) to rotate the text about its origin. + /// The origin for each letter; the default is (0,0) which represents the upper-left corner. + /// Scale factor. + /// Effects to apply. + /// + /// The depth of a layer. By default, 0 represents the front layer and 1 represents a back layer. + /// Use SpriteSortMode if you want sprites to be sorted during drawing. + /// + /// Clips the boundaries of the text so that it's not drawn outside the clipping rectangle + public static void DrawString(this SpriteBatch spriteBatch, BitmapFont font, string text, Vector2 position, + Color color, float rotation, Vector2 origin, float scale, SpriteEffects effect, float layerDepth, Rectangle? clippingRectangle = null) { - var dx = position.X; - var dy = position.Y; - var sentences = text.Split(new[] {'\n'}, StringSplitOptions.None); + DrawString(spriteBatch, font, text, position, color, rotation, origin, new Vector2(scale, scale), effect, layerDepth, clippingRectangle); + } - foreach (var sentence in sentences) - { - var words = sentence.Split(new[] { ' ' }, StringSplitOptions.None); + /// + /// Adds a string to a batch of sprites for rendering using the specified font, text, position, color, layer, + /// and width (in pixels) where to wrap the text at. + /// + /// + /// objects are loaded from the Content Manager. See the class for + /// more information. + /// Before any calls to you must call . Once all calls to + /// are complete, call . + /// Use a newline character (\n) to draw more than one line of text. + /// + /// + /// A font for displaying text. + /// The text message to display. + /// The location (in screen coordinates) to draw the text. + /// + /// The to tint a sprite. Use for full color with no + /// tinting. + /// + /// + /// The depth of a layer. By default, 0 represents the front layer and 1 represents a back layer. + /// Use SpriteSortMode if you want sprites to be sorted during drawing. + /// + /// Clips the boundaries of the text so that it's not drawn outside the clipping rectangle + public static void DrawString(this SpriteBatch spriteBatch, BitmapFont font, string text, Vector2 position, Color color, float layerDepth, Rectangle? clippingRectangle = null) + { + DrawString(spriteBatch, font, text, position, color, rotation: 0, origin: Vector2.Zero, scale: Vector2.One, effect: SpriteEffects.None, + layerDepth: layerDepth, clippingRectangle: clippingRectangle); + } - for (var i = 0; i < words.Length; i++) - { - var word = words[i]; - var size = bitmapFont.GetStringRectangle(word, Vector2.Zero); - - if (i != 0 && dx + size.Width >= wrapWidth) - { - dy += bitmapFont.LineHeight; - dx = position.X; - } - - DrawString(spriteBatch, bitmapFont, word, new Vector2(dx, dy), color); - dx += size.Width + bitmapFont.GetCharacterRegion(' ').XAdvance; - } - - dx = position.X; - dy += bitmapFont.LineHeight; - } + /// + /// Adds a string to a batch of sprites for rendering using the specified font, text, position, color, + /// and width (in pixels) where to wrap the text at. The text is drawn on layer 0f. + /// + /// + /// A font for displaying text. + /// The text message to display. + /// The location (in screen coordinates) to draw the text. + /// + /// The to tint a sprite. Use for full color with no + /// tinting. + /// + /// Clips the boundaries of the text so that it's not drawn outside the clipping rectangle + public static void DrawString(this SpriteBatch spriteBatch, BitmapFont font, string text, Vector2 position, Color color, Rectangle? clippingRectangle = null) + { + DrawString(spriteBatch, font, text, position, color, rotation: 0, origin: Vector2.Zero, scale: Vector2.One, effect: SpriteEffects.None, + layerDepth: 0, clippingRectangle: clippingRectangle); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/BitmapFonts/BitmapFontReader.cs b/Source/MonoGame.Extended/BitmapFonts/BitmapFontReader.cs index 3e88cf71..974e24cd 100644 --- a/Source/MonoGame.Extended/BitmapFonts/BitmapFontReader.cs +++ b/Source/MonoGame.Extended/BitmapFonts/BitmapFontReader.cs @@ -21,7 +21,7 @@ namespace MonoGame.Extended.BitmapFonts } var textures = assets - .Select(textureName => reader.ContentManager.Load(reader.GetRelativeAssetPath(textureName))) + .Select(textureName => reader.ContentManager.Load(reader.GetRelativeAssetName(textureName))) .ToArray(); var lineHeight = reader.ReadInt32(); @@ -30,7 +30,7 @@ namespace MonoGame.Extended.BitmapFonts for (var r = 0; r < regionCount; r++) { - var character = (char)reader.ReadInt32(); + var character = reader.ReadInt32(); var textureIndex = reader.ReadInt32(); var x = reader.ReadInt32(); var y = reader.ReadInt32(); @@ -42,8 +42,8 @@ namespace MonoGame.Extended.BitmapFonts var textureRegion = new TextureRegion2D(textures[textureIndex], x, y, width, height); regions[r] = new BitmapFontRegion(textureRegion, character, xOffset, yOffset, xAdvance); } - - return new BitmapFont(regions, lineHeight); + + return new BitmapFont(reader.AssetName, regions, lineHeight); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/BitmapFonts/BitmapFontRegion.cs b/Source/MonoGame.Extended/BitmapFonts/BitmapFontRegion.cs index 6cd2aafe..fb0a8e60 100644 --- a/Source/MonoGame.Extended/BitmapFonts/BitmapFontRegion.cs +++ b/Source/MonoGame.Extended/BitmapFonts/BitmapFontRegion.cs @@ -1,10 +1,11 @@ +using System; using MonoGame.Extended.TextureAtlases; namespace MonoGame.Extended.BitmapFonts { public class BitmapFontRegion { - public BitmapFontRegion(TextureRegion2D textureRegion, char character, int xOffset, int yOffset, int xAdvance) + public BitmapFontRegion(TextureRegion2D textureRegion, int character, int xOffset, int yOffset, int xAdvance) { TextureRegion = textureRegion; Character = character; @@ -12,15 +13,18 @@ namespace MonoGame.Extended.BitmapFonts YOffset = yOffset; XAdvance = xAdvance; } - - public char Character { get; set; } + + public int Character { get; } public TextureRegion2D TextureRegion { get; } - public int XOffset { get; set; } - public int YOffset { get; set; } - public int XAdvance { get; set; } - + public int XOffset { get; } + public int YOffset { get; } + public int XAdvance { get; } public int Width => TextureRegion.Width; - public int Height => TextureRegion.Height; + + public override string ToString() + { + return $"{Convert.ToChar(Character)} {TextureRegion}"; + } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/BoundingRectangle.cs b/Source/MonoGame.Extended/BoundingRectangle.cs new file mode 100644 index 00000000..4f28569c --- /dev/null +++ b/Source/MonoGame.Extended/BoundingRectangle.cs @@ -0,0 +1,579 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended +{ + // Real-Time Collision Detection, Christer Ericson, 2005. Chapter 4.2; Bounding Volumes - Axis-aligned Bounding Boxes (AABBs). pg 77 + + /// + /// An axis-aligned, four sided, two dimensional box defined by a centre and a radii + /// . + /// + /// + /// + /// An is categorized by having its faces oriented in such a way that its + /// face normals are at all times parallel with the axes of the given coordinate system. + /// + /// + /// The of a rotated will be equivalent or larger + /// in size + /// than the original depending on the angle of rotation. + /// + /// + /// + /// + [DebuggerDisplay("{" + nameof(DebugDisplayString) + ",nq}")] + public struct BoundingRectangle : IEquatable, + IEquatableByRef + { + /// + /// The with and + /// set to . + /// + public static readonly BoundingRectangle Empty = new BoundingRectangle(); + + /// + /// The centre position of this . + /// + public Point2 Center; + + /// + /// The distance from the point along both axes to any point on the boundary of this + /// . + /// + public Vector2 HalfExtents; + + /// + /// Initializes a new instance of the structure from the specified centre + /// and the radii . + /// + /// The centre . + /// The radii . + public BoundingRectangle(Point2 center, Size2 halfExtents) + { + Center = center; + HalfExtents = halfExtents; + } + + /// + /// Computes the from a minimum and maximum + /// . + /// + /// The minimum point. + /// The maximum point. + /// The resulting bounding rectangle. + public static void CreateFrom(Point2 minimum, Point2 maximum, out BoundingRectangle result) + { + result.Center = new Point2((maximum.X + minimum.X) * 0.5f, (maximum.Y + minimum.Y) * 0.5f); + result.HalfExtents = new Vector2((maximum.X - minimum.X) * 0.5f, (maximum.Y - minimum.Y) * 0.5f); + } + + /// + /// Computes the from a minimum and maximum + /// . + /// + /// The minimum point. + /// The maximum point. + /// The resulting . + public static BoundingRectangle CreateFrom(Point2 minimum, Point2 maximum) + { + BoundingRectangle result; + CreateFrom(minimum, maximum, out result); + return result; + } + + /// + /// Computes the from a list of structures. + /// + /// The points. + /// The resulting bounding rectangle. + public static void CreateFrom(IReadOnlyList points, out BoundingRectangle result) + { + Point2 minimum; + Point2 maximum; + PrimitivesHelper.CreateRectangleFromPoints(points, out minimum, out maximum); + CreateFrom(minimum, maximum, out result); + } + + /// + /// Computes the from a list of structures. + /// + /// The points. + /// The resulting . + public static BoundingRectangle CreateFrom(IReadOnlyList points) + { + BoundingRectangle result; + CreateFrom(points, out result); + return result; + } + + /// + /// Computes the from the specified transformed by + /// the + /// specified . + /// + /// The bounding rectangle. + /// The transform matrix. + /// The resulting bounding rectangle. + /// + /// The from the transformed by the + /// . + /// + /// + /// + /// If a transformed is used for then the + /// resulting will have the compounded transformation, which most likely is + /// not desired. + /// + /// + public static void Transform(ref BoundingRectangle boundingRectangle, + ref Matrix2D transformMatrix, out BoundingRectangle result) + { + PrimitivesHelper.TransformRectangle(ref boundingRectangle.Center, ref boundingRectangle.HalfExtents, ref transformMatrix); + result.Center = boundingRectangle.Center; + result.HalfExtents = boundingRectangle.HalfExtents; + } + + /// + /// Computes the from the specified transformed by + /// the + /// specified . + /// + /// The bounding rectangle. + /// The transform matrix. + /// + /// The from the transformed by the + /// . + /// + /// + /// + /// If a transformed is used for then the + /// resulting will have the compounded transformation, which most likely is + /// not desired. + /// + /// + public static BoundingRectangle Transform(BoundingRectangle boundingRectangle, + ref Matrix2D transformMatrix) + { + BoundingRectangle result; + Transform(ref boundingRectangle, ref transformMatrix, out result); + return result; + } + + /// + /// Computes the that contains the two specified + /// structures. + /// + /// The first bounding rectangle. + /// The second bounding rectangle. + /// The resulting bounding rectangle that contains both the and the + /// . + public static void Union(ref BoundingRectangle first, ref BoundingRectangle second, out BoundingRectangle result) + { + // Real-Time Collision Detection, Christer Ericson, 2005. Chapter 6.5; Bounding Volume Hierarchies - Merging Bounding Volumes. pg 267 + + var firstMinimum = first.Center - first.HalfExtents; + var firstMaximum = first.Center + first.HalfExtents; + var secondMinimum = second.Center - second.HalfExtents; + var secondMaximum = second.Center + second.HalfExtents; + + var minimum = Point2.Minimum(firstMinimum, secondMinimum); + var maximum = Point2.Maximum(firstMaximum, secondMaximum); + + result = CreateFrom(minimum, maximum); + } + + /// + /// Computes the that contains the two specified + /// structures. + /// + /// The first bounding rectangle. + /// The second bounding rectangle. + /// + /// A that contains both the and the + /// . + /// + public static BoundingRectangle Union(BoundingRectangle first, BoundingRectangle second) + { + BoundingRectangle result; + Union(ref first, ref second, out result); + return result; + } + + /// + /// Computes the that contains both the specified + /// and this . + /// + /// The bounding rectangle. + /// + /// A that contains both the and + /// this + /// . + /// + public BoundingRectangle Union(BoundingRectangle boundingRectangle) + { + return Union(this, boundingRectangle); + } + + /// + /// Computes the that is in common between the two specified + /// structures. + /// + /// The first bounding rectangle. + /// The second bounding rectangle. + /// The resulting bounding rectangle that is in common between both the and + /// the , if they intersect; otherwise, . + public static void Intersection(ref BoundingRectangle first, + ref BoundingRectangle second, out BoundingRectangle result) + { + var firstMinimum = first.Center - first.HalfExtents; + var firstMaximum = first.Center + first.HalfExtents; + var secondMinimum = second.Center - second.HalfExtents; + var secondMaximum = second.Center + second.HalfExtents; + + var minimum = Point2.Maximum(firstMinimum, secondMinimum); + var maximum = Point2.Minimum(firstMaximum, secondMaximum); + + if ((maximum.X < minimum.X) || (maximum.Y < minimum.Y)) + result = new BoundingRectangle(); + else + result = CreateFrom(minimum, maximum); + } + + /// + /// Computes the that is in common between the two specified + /// structures. + /// + /// The first bounding rectangle. + /// The second bounding rectangle. + /// + /// A that is in common between both the and + /// the , if they intersect; otherwise, . + /// + public static BoundingRectangle Intersection(BoundingRectangle first, + BoundingRectangle second) + { + BoundingRectangle result; + Intersection(ref first, ref second, out result); + return result; + } + + /// + /// Computes the that is in common between the specified + /// and this . + /// + /// The bounding rectangle. + /// + /// A that is in common between both the and + /// this , if they intersect; otherwise, . + /// + public BoundingRectangle Intersection(BoundingRectangle boundingRectangle) + { + BoundingRectangle result; + Intersection(ref this, ref boundingRectangle, out result); + return result; + } + + /// + /// Determines whether the two specified structures intersect. + /// + /// The first bounding rectangle. + /// The second bounding rectangle. + /// + /// true if the intersects with the ; otherwise, false. + /// + public static bool Intersects(ref BoundingRectangle first, ref BoundingRectangle second) + { + // Real-Time Collision Detection, Christer Ericson, 2005. Chapter 4.2; Bounding Volumes - Axis-aligned Bounding Boxes (AABBs). pg 80 + + var distance = first.Center - second.Center; + var radii = first.HalfExtents + second.HalfExtents; + return Math.Abs(distance.X) <= radii.X && Math.Abs(distance.Y) <= radii.Y; + } + + /// + /// Determines whether the two specified structures intersect. + /// + /// The first bounding rectangle. + /// The second bounding rectangle. + /// + /// true if the intersects with the ; otherwise, false. + /// + public static bool Intersects(BoundingRectangle first, BoundingRectangle second) + { + return Intersects(ref first, ref second); + } + + /// + /// Determines whether the specified intersects with this + /// . + /// + /// The bounding rectangle. + /// + /// true if the intersects with this + /// ; otherwise, + /// false. + /// + public bool Intersects(ref BoundingRectangle boundingRectangle) + { + return Intersects(ref this, ref boundingRectangle); + } + + /// + /// Determines whether the specified intersects with this + /// . + /// + /// The bounding rectangle. + /// + /// true if the intersects with this + /// ; otherwise, + /// false. + /// + public bool Intersects(BoundingRectangle boundingRectangle) + { + return Intersects(ref this, ref boundingRectangle); + } + + /// + /// Updates this from a list of structures. + /// + /// The points. + public void UpdateFromPoints(IReadOnlyList points) + { + var boundingRectangle = CreateFrom(points); + Center = boundingRectangle.Center; + HalfExtents = boundingRectangle.HalfExtents; + } + + /// + /// Determines whether the specified contains the specified + /// . + /// + /// The bounding rectangle. + /// The point. + /// + /// true if the contains the ; otherwise, + /// false. + /// + public static bool Contains(ref BoundingRectangle boundingRectangle, ref Point2 point) + { + // Real-Time Collision Detection, Christer Ericson, 2005. Chapter 4.2; Bounding Volumes - Axis-aligned Bounding Boxes (AABBs). pg 78 + + var distance = boundingRectangle.Center - point; + var radii = boundingRectangle.HalfExtents; + + return (Math.Abs(distance.X) <= radii.X) && (Math.Abs(distance.Y) <= radii.Y); + } + + /// + /// Determines whether the specified contains the specified + /// . + /// + /// The bounding rectangle. + /// The point. + /// + /// true if the contains the ; otherwise, + /// false. + /// + public static bool Contains(BoundingRectangle boundingRectangle, Point2 point) + { + return Contains(ref boundingRectangle, ref point); + } + + /// + /// Determines whether this contains the specified . + /// + /// The point. + /// + /// true if this contains the ; otherwise, + /// false. + /// + public bool Contains(Point2 point) + { + return Contains(this, point); + } + + /// + /// Computes the squared distance from this to a . + /// + /// The point. + /// The squared distance from this to the . + public float SquaredDistanceTo(Point2 point) + { + return PrimitivesHelper.SquaredDistanceToPointFromRectangle(Center - HalfExtents, Center + HalfExtents, point); + } + + /// + /// Computes the closest on this to a specified + /// . + /// + /// The point. + /// The closest on this to the . + public Point2 ClosestPointTo(Point2 point) + { + Point2 result; + PrimitivesHelper.ClosestPointToPointFromRectangle(Center - HalfExtents, Center + HalfExtents, point, out result); + return result; + } + + /// + /// Compares two structures. The result specifies whether the values of the + /// and fields of the two structures + /// are equal. + /// + /// The first bounding rectangle. + /// The second bounding rectangle. + /// + /// true if the and fields of the two + /// structures are equal; otherwise, false. + /// + public static bool operator ==(BoundingRectangle first, BoundingRectangle second) + { + return first.Equals(ref second); + } + + /// + /// Compares two structures. The result specifies whether the values of the + /// and fields of the two structures + /// are unequal. + /// + /// The first bounding rectangle. + /// The second bounding rectangle. + /// + /// true if the and fields of the two + /// structures are unequal; otherwise, false. + /// + public static bool operator !=(BoundingRectangle first, BoundingRectangle second) + { + return !(first == second); + } + + /// + /// Indicates whether this is equal to another + /// . + /// + /// The bounding rectangle. + /// + /// true if this is equal to the ; + /// otherwise, false. + /// + public bool Equals(BoundingRectangle boundingRectangle) + { + return Equals(ref boundingRectangle); + } + + /// + /// Indicates whether this is equal to another . + /// + /// The bounding rectangle. + /// + /// true if this is equal to the ; + /// otherwise, + /// false. + /// + public bool Equals(ref BoundingRectangle boundingRectangle) + { + return (boundingRectangle.Center == Center) && (boundingRectangle.HalfExtents == HalfExtents); + } + + /// + /// Returns a value indicating whether this is equal to a specified object. + /// + /// The object to make the comparison with. + /// + /// true if this is equal to ; otherwise, false. + /// + public override bool Equals(object obj) + { + if (obj is BoundingRectangle) + return Equals((BoundingRectangle)obj); + return false; + } + + /// + /// Returns a hash code of this suitable for use in hashing algorithms and data + /// structures like a hash table. + /// + /// + /// A hash code of this . + /// + public override int GetHashCode() + { + unchecked + { + return (Center.GetHashCode() * 397) ^ HalfExtents.GetHashCode(); + } + } + + /// + /// Performs an implicit conversion from a to a . + /// + /// The rectangle. + /// + /// The resulting . + /// + public static implicit operator BoundingRectangle(Rectangle rectangle) + { + var radii = new Size2(rectangle.Width * 0.5f, rectangle.Height * 0.5f); + var centre = new Point2(rectangle.X + radii.Width, rectangle.Y + radii.Height); + return new BoundingRectangle(centre, radii); + } + + /// + /// Performs an implicit conversion from a to a . + /// + /// The bounding rectangle. + /// + /// The resulting . + /// + public static implicit operator Rectangle(BoundingRectangle boundingRectangle) + { + var minimum = boundingRectangle.Center - boundingRectangle.HalfExtents; + return new Rectangle((int)minimum.X, (int)minimum.Y, (int)boundingRectangle.HalfExtents.X * 2, + (int)boundingRectangle.HalfExtents.Y * 2); + } + + /// + /// Performs an implicit conversion from a to a . + /// + /// The rectangle. + /// + /// The resulting . + /// + public static implicit operator BoundingRectangle(RectangleF rectangle) + { + var radii = new Size2(rectangle.Width * 0.5f, rectangle.Height * 0.5f); + var centre = new Point2(rectangle.X + radii.Width, rectangle.Y + radii.Height); + return new BoundingRectangle(centre, radii); + } + + /// + /// Performs an implicit conversion from a to a . + /// + /// The bounding rectangle. + /// + /// The resulting . + /// + public static implicit operator RectangleF(BoundingRectangle boundingRectangle) + { + var minimum = boundingRectangle.Center - boundingRectangle.HalfExtents; + return new RectangleF(minimum.X, minimum.Y, boundingRectangle.HalfExtents.X * 2, + boundingRectangle.HalfExtents.Y * 2); + } + + /// + /// Returns a that represents this . + /// + /// + /// A that represents this . + /// + public override string ToString() + { + return $"Centre: {Center}, Radii: {HalfExtents}"; + } + + internal string DebugDisplayString => ToString(); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Camera2D.cs b/Source/MonoGame.Extended/Camera2D.cs index eb67a717..efea610b 100644 --- a/Source/MonoGame.Extended/Camera2D.cs +++ b/Source/MonoGame.Extended/Camera2D.cs @@ -1,7 +1,6 @@ using System; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using MonoGame.Extended.Shapes; using MonoGame.Extended.ViewportAdapters; namespace MonoGame.Extended @@ -9,6 +8,9 @@ namespace MonoGame.Extended public class Camera2D : IMovable, IRotatable { private readonly ViewportAdapter _viewportAdapter; + private float _maximumZoom = float.MaxValue; + private float _minimumZoom; + private float _zoom; public Camera2D(GraphicsDevice graphicsDevice) : this(new DefaultViewportAdapter(graphicsDevice)) @@ -21,28 +23,24 @@ namespace MonoGame.Extended Rotation = 0; Zoom = 1; - Origin = new Vector2(viewportAdapter.VirtualWidth / 2f, viewportAdapter.VirtualHeight / 2f); + Origin = new Vector2(viewportAdapter.VirtualWidth/2f, viewportAdapter.VirtualHeight/2f); Position = Vector2.Zero; } - public Vector2 Position { get; set; } - public float Rotation { get; set; } public Vector2 Origin { get; set; } - private float _zoom; - public float Zoom + public float Zoom { get { return _zoom; } set { - if (value < MinimumZoom || value > MaximumZoom) + if ((value < MinimumZoom) || (value > MaximumZoom)) throw new ArgumentException("Zoom must be between MinimumZoom and MaximumZoom"); _zoom = value; } } - private float _minimumZoom; public float MinimumZoom { get { return _minimumZoom; } @@ -58,7 +56,6 @@ namespace MonoGame.Extended } } - private float _maximumZoom = float.MaxValue; public float MaximumZoom { get { return _maximumZoom; } @@ -74,6 +71,23 @@ namespace MonoGame.Extended } } + public RectangleF BoundingRectangle + { + get + { + var frustum = GetBoundingFrustum(); + var corners = frustum.GetCorners(); + var topLeft = corners[0]; + var bottomRight = corners[2]; + var width = bottomRight.X - topLeft.X; + var height = bottomRight.Y - topLeft.Y; + return new RectangleF(topLeft.X, topLeft.Y, width, height); + } + } + + public Vector2 Position { get; set; } + public float Rotation { get; set; } + public void Move(Vector2 direction) { Position += Vector2.Transform(direction, Matrix.CreateRotationZ(-Rotation)); @@ -98,15 +112,13 @@ namespace MonoGame.Extended { if (value < MinimumZoom) Zoom = MinimumZoom; - else if (value > MaximumZoom) - Zoom = MaximumZoom; else - Zoom = value; + Zoom = value > MaximumZoom ? MaximumZoom : value; } public void LookAt(Vector2 position) { - Position = position - new Vector2(_viewportAdapter.VirtualWidth / 2f, _viewportAdapter.VirtualHeight / 2f); + Position = position - new Vector2(_viewportAdapter.VirtualWidth/2f, _viewportAdapter.VirtualHeight/2f); } public Vector2 WorldToScreen(float x, float y) @@ -128,21 +140,22 @@ namespace MonoGame.Extended public Vector2 ScreenToWorld(Vector2 screenPosition) { var viewport = _viewportAdapter.Viewport; - return Vector2.Transform(screenPosition - new Vector2(viewport.X, viewport.Y), Matrix.Invert(GetViewMatrix())); + return Vector2.Transform(screenPosition - new Vector2(viewport.X, viewport.Y), + Matrix.Invert(GetViewMatrix())); } public Matrix GetViewMatrix(Vector2 parallaxFactor) { - return GetVirtualViewMatrix(parallaxFactor) * _viewportAdapter.GetScaleMatrix(); + return GetVirtualViewMatrix(parallaxFactor)*_viewportAdapter.GetScaleMatrix(); } private Matrix GetVirtualViewMatrix(Vector2 parallaxFactor) { return - Matrix.CreateTranslation(new Vector3(-Position * parallaxFactor, 0.0f)) * - Matrix.CreateTranslation(new Vector3(-Origin, 0.0f)) * - Matrix.CreateRotationZ(Rotation) * - Matrix.CreateScale(Zoom, Zoom, 1) * + Matrix.CreateTranslation(new Vector3(-Position*parallaxFactor, 0.0f))* + Matrix.CreateTranslation(new Vector3(-Origin, 0.0f))* + Matrix.CreateRotationZ(Rotation)* + Matrix.CreateScale(Zoom, Zoom, 1)* Matrix.CreateTranslation(new Vector3(Origin, 0.0f)); } @@ -156,14 +169,15 @@ namespace MonoGame.Extended return GetViewMatrix(Vector2.One); } - public Matrix GetInverseViewMatrix() + public Matrix GetInverseViewMatrix() { return Matrix.Invert(GetViewMatrix()); } private Matrix GetProjectionMatrix(Matrix viewMatrix) { - var projection = Matrix.CreateOrthographicOffCenter(0, _viewportAdapter.VirtualWidth, _viewportAdapter.VirtualHeight, 0, -1, 0); + var projection = Matrix.CreateOrthographicOffCenter(0, _viewportAdapter.VirtualWidth, + _viewportAdapter.VirtualHeight, 0, -1, 0); Matrix.Multiply(ref viewMatrix, ref projection, out projection); return projection; } @@ -175,17 +189,6 @@ namespace MonoGame.Extended return new BoundingFrustum(projectionMatrix); } - public RectangleF GetBoundingRectangle() - { - var frustum = GetBoundingFrustum(); - var corners = frustum.GetCorners(); - var topLeft = corners[0]; - var bottomRight = corners[2]; - var width = bottomRight.X - topLeft.X; - var height = bottomRight.Y - topLeft.Y; - return new RectangleF(topLeft.X, topLeft.Y, width, height); - } - public ContainmentType Contains(Point point) { return Contains(point.ToVector2()); @@ -204,4 +207,4 @@ namespace MonoGame.Extended return GetBoundingFrustum().Contains(boundingBox); } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/CircleF.cs b/Source/MonoGame.Extended/CircleF.cs new file mode 100644 index 00000000..6bab4f23 --- /dev/null +++ b/Source/MonoGame.Extended/CircleF.cs @@ -0,0 +1,497 @@ +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended +{ + // Real-Time Collision Detection, Christer Ericson, 2005. Chapter 4.3; Bounding Volumes - Spheres. pg 88 + + /// + /// A two dimensional circle defined by a centre and a radius . + /// + /// + /// + /// An is categorized by the set of all points in a plane that are at equal distance from + /// the + /// centre. + /// + /// + /// + /// + [DataContract] + public struct CircleF : IEquatable, IEquatableByRef + { + /// + /// The centre position of this . + /// + [DataMember] public Point2 Center; + + /// + /// The distance from the point to any point on the boundary of this . + /// + [DataMember] public float Radius; + + /// + /// Gets the distance from a point to the opposite point, both on the boundary of this . + /// + public float Diameter => 2 * Radius; + + /// + /// Gets the distance around the boundary of this . + /// + public float Circumference => 2 * MathHelper.Pi * Radius; + + /// + /// Initializes a new instance of the structure from the specified centre + /// and the radius . + /// + /// The centre point. + /// The radius. + public CircleF(Point2 center, float radius) + { + Center = center; + Radius = radius; + } + + /// + /// Computes the bounding from a minimum and maximum + /// . + /// + /// The minimum point. + /// The maximum point. + /// The resulting circle. + public static void CreateFrom(Point2 minimum, Point2 maximum, out CircleF result) + { + result.Center = new Point2((maximum.X + minimum.X) * 0.5f, (maximum.Y + minimum.Y) * 0.5f); + var distanceVector = maximum - minimum; + result.Radius = distanceVector.X > distanceVector.Y ? distanceVector.X * 0.5f : distanceVector.Y * 0.5f; + } + + /// + /// Computes the bounding from a minimum and maximum + /// . + /// + /// The minimum point. + /// The maximum point. + /// An . + public static CircleF CreateFrom(Point2 minimum, Point2 maximum) + { + CircleF result; + CreateFrom(minimum, maximum, out result); + return result; + } + + /// + /// Computes the bounding from a list of structures. + /// + /// The points. + /// The resulting circle. + public static void CreateFrom(IReadOnlyList points, out CircleF result) + { + // Real-Time Collision Detection, Christer Ericson, 2005. Chapter 4.3; Bounding Volumes - Spheres. pg 89-90 + + if (points == null || points.Count == 0) + { + result = default(CircleF); + return; + } + + var minimum = new Point2(float.MaxValue, float.MaxValue); + var maximum = new Point2(float.MinValue, float.MinValue); + + // ReSharper disable once ForCanBeConvertedToForeach + for (var index = points.Count - 1; index >= 0; --index) + { + var point = points[index]; + minimum = Point2.Minimum(minimum, point); + maximum = Point2.Maximum(maximum, point); + } + + CreateFrom(minimum, maximum, out result); + } + + /// + /// Computes the bounding from a list of structures. + /// + /// The points. + /// An . + public static CircleF CreateFrom(IReadOnlyList points) + { + CircleF result; + CreateFrom(points, out result); + return result; + } + + /// + /// Determines whether the two specified structures intersect. + /// + /// The first circle. + /// The second circle. + /// + /// true if the intersects with the ; otherwise, false. + /// + public static bool Intersects(ref CircleF first, ref CircleF second) + { + // Real-Time Collision Detection, Christer Ericson, 2005. Chapter 4.3; Bounding Volumes - Spheres. pg 88 + + // Calculate squared distance between centers + var distanceVector = first.Center - second.Center; + var distanceSquared = distanceVector.Dot(distanceVector); + var radiusSum = first.Radius + second.Radius; + return distanceSquared <= radiusSum * radiusSum; + } + + /// + /// Determines whether the two specified structures intersect. + /// + /// The first circle. + /// The second circle. + /// + /// true if the intersects with the ; otherwise, false. + /// + public static bool Intersects(CircleF first, CircleF second) + { + return Intersects(ref first, ref second); + } + + /// + /// Determines whether the specified intersects with this . + /// + /// The circle. + /// + /// true if the intersects with this ; otherwise, + /// false. + /// + public bool Intersects(ref CircleF circle) + { + return Intersects(ref this, ref circle); + } + + /// + /// Determines whether the specified intersects with this . + /// + /// The circle. + /// + /// true if the intersects with this ; otherwise, + /// false. + /// + public bool Intersects(CircleF circle) + { + return Intersects(ref this, ref circle); + } + + /// + /// Determines whether the specified and structures intersect. + /// + /// The circle. + /// The rectangle. + /// + /// true if the intersects with the ; otherwise, false + /// . + /// + public static bool Intersects(ref CircleF circle, ref BoundingRectangle rectangle) + { + // Real-Time Collision Detection, Christer Ericson, 2005. Chapter 5.25; Basic Primitives Test - Testing Sphere Against AABB. pg 165-166 + + // Compute squared distance between sphere center and AABB boundary + var distanceSquared = rectangle.SquaredDistanceTo(circle.Center); + // Circle and AABB intersect if the (squared) distance between the AABB's boundary and the circle is less than the (squared) circle's radius + return distanceSquared <= circle.Radius * circle.Radius; + } + + /// + /// Determines whether the specified and structures intersect. + /// + /// The circle. + /// The rectangle. + /// + /// true if the intersects with the ; otherwise, false + /// . + /// + public static bool Intersects(CircleF circle, BoundingRectangle rectangle) + { + return Intersects(ref circle, ref rectangle); + } + + /// + /// Determines whether the specified intersects with this . + /// + /// The rectangle. + /// + /// true if the intersects with this ; otherwise, + /// false. + /// + public bool Intersects(ref BoundingRectangle rectangle) + { + return Intersects(ref this, ref rectangle); + } + + /// + /// Determines whether the specified intersects with this . + /// + /// The rectangle. + /// + /// true if the intersects with this ; otherwise, + /// false. + /// + public bool Intersects(BoundingRectangle rectangle) + { + return Intersects(ref this, ref rectangle); + } + + /// + /// Determines whether the specified contains the specified + /// . + /// + /// The circle. + /// The point. + /// + /// true if the contains the ; otherwise, + /// false. + /// + public static bool Contains(ref CircleF circle, Point2 point) + { + var distance = circle.Center - point; + return Math.Abs(distance.X) <= circle.Radius && Math.Abs(distance.Y) <= circle.Radius; + } + + /// + /// Determines whether the specified contains the specified + /// . + /// + /// The circle. + /// The point. + /// + /// true if the contains the ; otherwise, + /// false. + /// + public static bool Contains(CircleF circle, Point2 point) + { + return Contains(ref circle, point); + } + + /// + /// Determines whether this contains the specified . + /// + /// The point. + /// + /// true if this contains the ; otherwise, + /// false. + /// + public bool Contains(Point2 point) + { + return Contains(ref this, point); + } + + /// + /// Computes the closest on this to a specified + /// . + /// + /// The point. + /// The closest on this to the . + public Point2 ClosestPointTo(Point2 point) + { + var distanceVector = point - Center; + var lengthSquared = distanceVector.Dot(distanceVector); + if (lengthSquared <= Radius * Radius) + return point; + distanceVector.Normalize(); + return Center + Radius * distanceVector; + } + + /// + /// Computes the on the boundary of of this using the specified angle. + /// + /// The angle in radians. + /// The on the boundary of this using . + public Point2 BoundaryPointAt(float angle) + { + var direction = new Vector2((float) Math.Cos(angle), (float) Math.Sin(angle)); + return Center + Radius * direction; + } + + [Obsolete("Circle.GetPointAlongEdge() may be removed in the future. Use BoundaryPointAt() instead.")] + public Point2 GetPointAlongEdge(float angle) + { + return Center + new Vector2(Radius * (float) Math.Cos(angle), Radius * (float) Math.Sin(angle)); + } + + /// + /// Compares two structures. The result specifies whether the values of the + /// and fields of the two structures + /// are equal. + /// + /// The first circle. + /// The second circle. + /// + /// true if the and fields of the two + /// structures are equal; otherwise, false. + /// + public static bool operator ==(CircleF first, CircleF second) + { + return first.Equals(ref second); + } + + /// + /// Compares two structures. The result specifies whether the values of the + /// and fields of the two structures + /// are unequal. + /// + /// The first circle. + /// The second circle. + /// + /// true if the and fields of the two + /// structures are unequal; otherwise, false. + /// + public static bool operator !=(CircleF first, CircleF second) + { + return !(first == second); + } + + /// + /// Indicates whether this is equal to another . + /// + /// The circle. + /// + /// true if this is equal to the ; otherwise, false. + /// + public bool Equals(CircleF circle) + { + return Equals(ref circle); + } + + /// + /// Indicates whether this is equal to another . + /// + /// The bounding rectangle. + /// + /// true if this is equal to the ; + /// otherwise,false. + /// + public bool Equals(ref CircleF circle) + { + // ReSharper disable once CompareOfFloatsByEqualityOperator + return circle.Center == Center && circle.Radius == Radius; + } + + /// + /// Returns a value indicating whether this is equal to a specified object. + /// + /// The object to make the comparison with. + /// + /// true if this is equal to ; otherwise, false. + /// + public override bool Equals(object obj) + { + return obj is CircleF && Equals((CircleF) obj); + } + + /// + /// Returns a hash code of this suitable for use in hashing algorithms and data + /// structures like a hash table. + /// + /// + /// A hash code of this . + /// + public override int GetHashCode() + { + unchecked + { + return (Center.GetHashCode() * 397) ^ Radius.GetHashCode(); + } + } + + /// + /// Performs an implicit conversion from a to a . + /// + /// The circle. + /// + /// The resulting . + /// + public static implicit operator Rectangle(CircleF circle) + { + var diameter = (int) circle.Diameter; + return new Rectangle((int) (circle.Center.X - circle.Radius), (int) (circle.Center.Y - circle.Radius), + diameter, diameter); + } + + /// + /// Performs a conversion from a specified to a . + /// + /// + /// The resulting . + /// + public Rectangle ToRectangle() + { + return this; + } + + /// + /// Performs an implicit conversion from a to a . + /// + /// The rectangle. + /// + /// The resulting . + /// + public static implicit operator CircleF(Rectangle rectangle) + { + var halfWidth = rectangle.Width / 2; + var halfHeight = rectangle.Height / 2; + return new CircleF(new Point2(rectangle.X + halfWidth, rectangle.Y + halfHeight), + halfWidth > halfHeight ? halfWidth : halfHeight); + } + + /// + /// Performs an implicit conversion from a to a . + /// + /// The circle. + /// + /// The resulting . + /// + public static implicit operator RectangleF(CircleF circle) + { + var diameter = circle.Diameter; + return new RectangleF(circle.Center.X - circle.Radius, circle.Center.Y - circle.Radius, diameter, diameter); + } + + /// + /// Performs a conversion from a specified to a . + /// + /// + /// The resulting . + /// + public RectangleF ToRectangleF() + { + return this; + } + + /// + /// Performs an implicit conversion from a to a . + /// + /// The rectangle. + /// + /// The resulting . + /// + public static implicit operator CircleF(RectangleF rectangle) + { + var halfWidth = rectangle.Width * 0.5f; + var halfHeight = rectangle.Height * 0.5f; + return new CircleF(new Point2(rectangle.X + halfWidth, rectangle.Y + halfHeight), + halfWidth > halfHeight ? halfWidth : halfHeight); + } + + /// + /// Returns a that represents this . + /// + /// + /// A that represents this . + /// + public override string ToString() + { + return $"Centre: {Center}, Radius: {Radius}"; + } + + internal string DebugDisplayString => ToString(); + } +} diff --git a/Source/MonoGame.Extended/Collections/BitVector32.cs b/Source/MonoGame.Extended/Collections/BitVector32.cs new file mode 100644 index 00000000..e216ff76 --- /dev/null +++ b/Source/MonoGame.Extended/Collections/BitVector32.cs @@ -0,0 +1,625 @@ +using System; +using System.Collections; +using System.Diagnostics; +using System.Text; + +namespace MonoGame.Extended.Collections +{ + /// + /// Defines a bit vector with easy integer or boolean access to a 32 bit storage. + /// + /// + /// + /// is more efficient than for boolean values and small integers + /// that are used internally. A can grow indefinitely as needed, but it has the memory and + /// performance overhead that a class instance requires. In contrast, a uses only 32 + /// bits. + /// + /// + /// A structure can be set up to contain either sections for small integers or bit + /// flags for booleans, but not both. A is a window into the and + /// is composed of the smallest number of consecutive bits that can contain the maximum value specified in + /// . For example, a section with a maximum value of 1 is composed of + /// only one bit, whereas a section with a maximum value of 5 is composed of three bits. You can create a + /// with a maximum value of 1 to serve as a , thereby allowing you to + /// store integers and booleans in the same . + /// + /// + /// Some members can be used for a that is set up as sections, while other members can + /// be used for one that is set up as bit flags. For example, the property is the + /// indexer for a that is set up as sections, and the property + /// is the indexer for a that is set up as bit flags. + /// creates a series of masks that can be used to access individual bits in a that is + /// set up as bit flags. + /// + /// + public struct BitVector32 : IEquatable + { + private uint _data; + + /// + /// Initializes a new instance of the structure with the specified internal data. + /// + /// An integer representing the data of the new . + /// + /// This constructor is an O(1) operation. + /// + public BitVector32(uint data) + { + _data = data; + } + + /// + /// Initializes a new instance of the structure with the specified internal data. + /// + /// An integer representing the data of the new . + /// + /// This constructor is an O(1) operation. + /// + public BitVector32(int data) + { + _data = (uint) data; + } + + /// + /// Initializes a new instance of the structure containing the data represented in an + /// existing structure. + /// + /// A structure that contains the data to copy. + /// + /// This constructor is an O(1) operation. + /// + public BitVector32(BitVector32 value) + { + _data = value._data; + } + + + /// + /// Gets or sets the state of the bit flag indicated by the specified mask. + /// + /// A bit mask that indicates the bit flag to get or set. + /// true if the specified bit flag is on (1); otherwise, false. + /// + /// + /// The property is the indexer for a that is set up as + /// sections, and the property is the indexer for a that is + /// set up as bit flags. + /// + /// + /// Using this property on a that is set up as sections might cause unexpected + /// results. + /// + /// Retrieving the value of this property is an O(1) operation; setting the property is also an O(1) operation. + /// + public bool this[uint bitMask] + { + get { return (_data & bitMask) == bitMask; } + set + { + if (value) + _data |= bitMask; + else + _data &= ~bitMask; + } + } + + /// + /// Gets or sets the value stored in the specified . + /// + /// A that contains the value to get or set. + /// The value stored in the specified . + /// + /// + /// The property is the indexer for a that is set up as + /// sections, and the property is the indexer for a that is + /// set up as bit flags. + /// + /// + /// A is a window into the and is composed of the smallest + /// number of consecutive bits that can contain the maximum value specified in . + /// For example, a section with a maximum value of 1 is composed of only one bit, whereas a section with a maximum + /// value of 5 is composed of three bits. You can create a with a maximum value of 1 to + /// serve as a , thereby allowing you to store integers and booleans in the same + /// . + /// + /// Retrieving the value of this property is an O(1) operation; setting the property is also an O(1) operation. + /// + public int this[Section section] + { + get { return (int) ((_data & (uint) (section.Mask << section.Offset)) >> section.Offset); } + set + { + Debug.Assert((value & section.Mask) == value, "Value out of bounds on BitVector32 Section set."); + value <<= section.Offset; + var offsetMask = (0xFFFF & section.Mask) << section.Offset; + _data = (_data & ~(uint) offsetMask) | ((uint) value & (uint) offsetMask); + } + } + + /// + /// Converts a to an . + /// + /// The to convert into a . + public static implicit operator uint(BitVector32 bitVector) + { + return bitVector._data; + } + + /// + /// Converts a to a . + /// + /// The to convert into a . + public static implicit operator BitVector32(uint data) + { + return new BitVector32(data); + } + + /// + /// Converts a to an . + /// + /// The to convert into a . + public static implicit operator int(BitVector32 bitVector) + { + return (int) bitVector._data; + } + + /// + /// Converts a to a . + /// + /// The to convert into a . + public static implicit operator BitVector32(int data) + { + return new BitVector32(data); + } + + private static short CountBitsSet(short mask) + { + // bits are always right aligned with no holes, e.g., always 00000111 never 000100011 + short value = 0; + while ((mask & 0x1) != 0) + { + value++; + mask >>= 1; + } + return value; + } + + /// + /// Creates the first mask in a series of masks that can be used to retrieve individual bits in a + /// that is set up as bit flags. + /// + /// A mask that isolates the first bit flag in the . + /// + /// + /// Use to create the first mask in a series and for + /// all subsequent masks. + /// + /// Multiple masks can be created to refer to the same bit flag. + /// + /// The resulting mask isolates only one bit flag in the . You can combine masks using + /// the bitwise OR operation to create a mask that isolates multiple bit flags in the . + /// + /// Using a mask on a that is set up as sections might cause unexpected results. + /// This method is an O(1) operation. + /// + public static uint CreateMask() + { + return CreateMask(0); + } + + /// + /// Creates an additional mask following the specified mask in a series of masks that can be used to retrieve + /// individual bits in a that is set up as bit flags. + /// + /// The mask that indicates the previous bit flag. + /// + /// A mask that isolates the bit flag following the one that points to in + /// . + /// + /// + /// indicates the last bit flag in the + /// . + /// + /// + /// + /// Use to create the first mask in a series and for + /// all subsequent masks. + /// + /// Multiple masks can be created to refer to the same bit flag. + /// + /// The resulting mask isolates only one bit flag in the . You can combine masks using + /// the bitwise OR operation to create a mask that isolates multiple bit flags in the . + /// + /// Using a mask on a that is set up as sections might cause unexpected results. + /// This method is an O(1) operation. + /// + public static uint CreateMask(uint previous) + { + if (previous == 0) + return 1; + + if (previous == 0x80000000) + throw new InvalidOperationException("Can't create a new mask; the bit vector is full."); + + return previous << 1; + } + + private static short CreateMaskFromHighValue(short highValue) + { + short required = 16; + while ((highValue & 0x8000) == 0) + { + required--; + highValue <<= 1; + } + + ushort value = 0; + while (required > 0) + { + required--; + value <<= 1; + value |= 0x1; + } + + return unchecked((short) value); + } + + /// + /// Creates the first in a series of sections that contain small integers. + /// + /// A 16-bit signed integer that specifies the maximum value for the new . + /// A that can hold a number from zero to . + /// is less than 1. + /// + /// + /// A is a window into the and is composed of the smallest + /// number of consecutive bits that can contain the maximum value specified in + /// . + /// For example, a section with a maximum value of 1 is composed of only one bit, whereas a section with a maximum + /// value of 5 is composed of three bits. You can create a with a maximum value of 1 to + /// serve as a , thereby allowing you to store integers and booleans in the same + /// . + /// + /// + /// If sections already exist in the , those sections are still accessible; however, + /// overlapping sections might cause unexpected results. + /// + /// This method is an O(1) operation. + /// + public static Section CreateSection(short maxValue) + { + return CreateSectionHelper(maxValue, 0, 0); + } + + /// + /// Creates a new following the specified in a series of sections that + /// contain small integers. + /// + /// A 16-bit signed integer that specifies the maximum value for the new . + /// The previous in the . + /// A that can hold a number from zero to . + /// + /// is less than 1. + /// + /// + /// includes the final bit in the + /// . + /// + /// + /// + /// is greater than the highest value that can be represented by the number of bits after . + /// + /// + /// + /// A is a window into the and is composed of the smallest + /// number of consecutive bits that can contain the maximum value specified in + /// . For example, a section with a maximum value of 1 is composed of + /// only one bit, whereas a section with a maximum value of 5 is composed of three bits. You can create a + /// BitVector32.Section with a maximum value of 1 to serve as a Boolean, thereby allowing you to store integers and + /// Booleans in the same BitVector32. + /// + /// + /// If sections already exist after previous in the , those sections are still + /// accessible; however, overlapping sections might cause unexpected results. + /// + /// This method is an O(1) operation. + /// + public static Section CreateSection(short maxValue, Section previous) + { + return CreateSectionHelper(maxValue, previous.Mask, previous.Offset); + } + + private static Section CreateSectionHelper(short maxValue, short priorMask, short priorOffset) + { + if (maxValue < 1) + throw new ArgumentException("The max value was less than 0."); +#if DEBUG + int maskCheck = CreateMaskFromHighValue(maxValue); + var offsetCheck = priorOffset + CountBitsSet(priorMask); + Debug.Assert((maskCheck <= short.MaxValue) && (offsetCheck < 32), "Overflow on BitVector32"); +#endif + var offset = (short) (priorOffset + CountBitsSet(priorMask)); + if (offset >= 32) + throw new InvalidOperationException("Can't create a new mask; the bit vector is full."); + return new Section(CreateMaskFromHighValue(maxValue), offset); + } + + /// + /// Determines whether the specified object is equal to the . + /// + /// The object to compare with the . + /// true if the specified object is equal to the ; otherwise, false. + /// + /// + /// The object is considered equal to the if the type of + /// is compatible with the type and if the value of + /// is equal to the value of . + /// + /// This method is an O(1) operation. + /// + public override bool Equals(object obj) + { + return obj is BitVector32 && Equals((BitVector32) obj); + } + + /// + /// Determines whether the specified is equal to the . + /// + /// The to compare with the . + /// + /// true if is the same as the ; otherwise, + /// false. + /// + /// + /// This method is an O(1) operation. + /// + public bool Equals(BitVector32 other) + { + return _data == other._data; + } + + /// + /// Determines whether two specified values are equal. + /// + /// The first . + /// The second + /// + /// true if and represent the same , + /// otherwise, false. + /// + /// + /// This method is an O(1) operation. + /// + public static bool operator ==(BitVector32 a, BitVector32 b) + { + return a.Equals(b); + } + + /// + /// Determines whether two values have different values. + /// + /// The first . + /// The second + /// + /// true if and do not represent the same + /// , + /// otherwise, false. + /// + /// + /// This method is an O(1) operation. + /// + public static bool operator !=(BitVector32 a, BitVector32 b) + { + return !(a == b); + } + + /// + /// Serves as a hash function for the . + /// + /// A hash code for the . + /// + /// This method overrides . + /// + /// The hash code of a is based on the value of . Two + /// instances of with the same values also generate the same hash code. + /// + /// This method is an O(1) operation. + /// + public override int GetHashCode() + { + return base.GetHashCode(); + } + + /// + /// Returns a string that represents the specified . + /// + /// The to represent. + /// A string that represents the specified . + /// + /// This method is an O(1) operation. + /// + public static string ToString(BitVector32 value) + { + var stringBuilder = new StringBuilder(12 + 32 + 1); + stringBuilder.Append("BitVector32{"); + var data = (int) value._data; + for (var i = 0; i < 32; i++) + { + stringBuilder.Append((data & 0x80000000) != 0 ? "1" : "0"); + data <<= 1; + } + stringBuilder.Append("}"); + return stringBuilder.ToString(); + } + + /// + /// Returns a string that represents the current . + /// + /// A string that represents the current . + /// + /// This method overrides . + /// This method is an O(1) operation. + /// + public override string ToString() + { + return ToString(this); + } + + /// + /// Represents a section of a that can contain an integer number. + /// + /// + /// + /// Use to define a new section. A is a window into the + /// and is composed of the smallest number of consecutive bits that can contain the + /// maximum value specified in . For example, a section with a maximum + /// value of 1 is composed of only one bit, whereas a section with a maximum value of 5 is composed of three bits. + /// You can create a with a maximum value of 1 to serve as a , thereby + /// allowing you to store integers and booleans in the same . + /// + /// + public struct Section : IEquatable
      + { + /// + /// The mask that isolates the within the . + /// + public readonly short Mask; + + /// + /// Gets the offset of the from the start of the . + /// + public readonly short Offset; + + internal Section(short mask, short offset) + { + Mask = mask; + Offset = offset; + } + + /// + /// Determines whether the specified object is equal to the . + /// + /// The object to compare with the . + /// true if is the same as the ; otherwise, false. + /// + /// This method overrides . + /// + /// Two values are considered equal if both sections are of the same length and are in the + /// same location within a . + /// + /// This method is an O(1) operation. + /// + public override bool Equals(object obj) + { + if (obj is Section) + return Equals((Section) obj); + return false; + } + + /// + /// Determines whether the specified is equal to the . + /// + /// The to compare with the . + /// true if is the same as the ; otherwise, false. + /// + /// + /// Two values are considered equal if both sections are of the same length and are in the + /// same location within a . + /// + /// This method is an O(1) operation. + /// + public bool Equals(Section other) + { + return (other.Mask == Mask) && (other.Offset == Offset); + } + + /// + /// Determines whether two specified values are equal. + /// + /// The first . + /// The second + /// + /// true if and represent the same , + /// otherwise, false. + /// + /// + /// + /// Two values are considered equal if both sections are of the same length and are in the + /// same location within a . + /// + /// This method is an O(1) operation. + /// + public static bool operator ==(Section a, Section b) + { + return (a.Mask == b.Mask) && (a.Offset == b.Offset); + } + + /// + /// Determines whether two values have different values. + /// + /// The first . + /// The second + /// + /// true if and do not represent the same , + /// otherwise, false. + /// + /// + /// + /// Two values are considered equal if both sections are of the same length and are in the + /// same location within a . + /// + /// This method is an O(1) operation. + /// + public static bool operator !=(Section a, Section b) + { + return !(a == b); + } + + /// + /// Serves as a hash function for the , suitable for hashing algorithms and data structures, such + /// as a hash table. + /// + /// A hash code for the current . + /// + /// This method overrides . + /// + /// This method generates the same hash code for two objects that are equal according to the + /// method. + /// + /// This method is an O(1) operation. + /// + public override int GetHashCode() + { + return base.GetHashCode(); + } + + /// + /// Returns a string that represents the specified . + /// + /// The to represent. + /// A string that represents the specified . + /// + /// This method is an O(1) operation. + /// + public static string ToString(Section value) + { + return "Section{0x" + Convert.ToString(value.Mask, 16) + ", 0x" + Convert.ToString(value.Offset, 16) + + "}"; + } + + /// + /// Returns a string that represents the . + /// + /// A string that represents the . + /// + /// This method overrides . + /// This method is an O(1) operation. + /// + public override string ToString() + { + return ToString(this); + } + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Collections/Deque.cs b/Source/MonoGame.Extended/Collections/Deque.cs index e40cb944..5d6f4e4b 100644 --- a/Source/MonoGame.Extended/Collections/Deque.cs +++ b/Source/MonoGame.Extended/Collections/Deque.cs @@ -8,7 +8,7 @@ namespace MonoGame.Extended.Collections { internal static class Deque { - internal static readonly Func DefaultResizeFunction = x => x * 2; + internal static readonly Func DefaultResizeFunction = x => x*2; } /// @@ -24,115 +24,10 @@ namespace MonoGame.Extended.Collections { private const int _defaultCapacity = 4; private static readonly T[] _emptyArray = new T[0]; - private T[] _items; private int _frontArrayIndex; + private T[] _items; private Func _resizeFunction = Deque.DefaultResizeFunction; - /// - /// Gets or sets the resize function used to calculate and set when a greater capacity is - /// required. - /// - /// - /// The used to calculate and set when a greater capacity - /// is required. - /// - /// - /// The default resize function is twice the . Setting - /// to null will set it back to the default. - /// - public Func ResizeFunction - { - get { return _resizeFunction; } - set { _resizeFunction = value ?? Deque.DefaultResizeFunction; } - } - - /// - /// Gets or sets the total number of elements the internal data structure can hold without resizing. - /// - /// The number of elements that the can contain before resizing is required. - /// - /// cannot be set to a value less than . - /// - /// - /// Changing reallocates memory and copies all the - /// elements in the . - /// - public int Capacity - { - get { return _items.Length; } - set - { - if (value < Count) - { - throw new ArgumentOutOfRangeException(nameof(value), "capacity was less than the current size."); - } - - if (value == Capacity) - { - return; - } - - if (value == 0) - { - _items = _emptyArray; - return; - } - - var newItems = new T[value]; - CopyTo(newItems); - - _frontArrayIndex = 0; - _items = null; - _items = newItems; - } - } - - /// - /// Gets or sets the element at the specified index. - /// - /// The zero-based index of the element to get or set. - /// The element at the specified index. - /// - /// Index was out of range. Must be non-negative and less than . - /// - /// - /// - /// - /// Use 0 for the to get or set the element at the beginning of the - /// , and use - 1 for the to get the - /// element at the end of the . - /// - /// - public T this[int index] - { - get - { - var arrayIndex = GetArrayIndex(index); - if (arrayIndex == -1) - { - throw new ArgumentOutOfRangeException(nameof(index), "Index was out of range. Must be non-negative and less than the size of the collection."); - } - return _items[arrayIndex]; - } - set - { - var arrayIndex = GetArrayIndex(index); - if (arrayIndex == -1) - { - throw new ArgumentOutOfRangeException(nameof(index), "Index was out of range. Must be non-negative and less than the size of the collection."); - } - _items[arrayIndex] = value; - } - } - - /// - /// Gets the number of elements contained in the . - /// - /// The number of elements contained in the . - public int Count { get; private set; } - - bool ICollection.IsReadOnly => false; - /// /// Initializes a new instance of the class that is empty and has the default initial capacity. /// @@ -176,17 +71,13 @@ namespace MonoGame.Extended.Collections public Deque(IEnumerable collection) { if (collection == null) - { throw new ArgumentNullException(nameof(collection)); - } var array = collection as T[] ?? collection.ToArray(); var count = array.Length; if (count == 0) - { _items = _emptyArray; - } else { _items = new T[count]; @@ -221,13 +112,406 @@ namespace MonoGame.Extended.Collections public Deque(int capacity) { if (capacity < 0) - { throw new ArgumentOutOfRangeException(nameof(capacity), "Capacity was less than zero."); - } _items = capacity == 0 ? _emptyArray : new T[capacity]; } + /// + /// Gets or sets the resize function used to calculate and set when a greater capacity is + /// required. + /// + /// + /// The used to calculate and set when a greater capacity + /// is required. + /// + /// + /// The default resize function is twice the . Setting + /// to null will set it back to the default. + /// + public Func ResizeFunction + { + get { return _resizeFunction; } + set { _resizeFunction = value ?? Deque.DefaultResizeFunction; } + } + + /// + /// Gets or sets the total number of elements the internal data structure can hold without resizing. + /// + /// The number of elements that the can contain before resizing is required. + /// + /// cannot be set to a value less than . + /// + /// + /// Changing reallocates memory and copies all the + /// elements in the . + /// + public int Capacity + { + get { return _items.Length; } + set + { + if (value < Count) + throw new ArgumentOutOfRangeException(nameof(value), "capacity was less than the current size."); + + if (value == Capacity) + return; + + if (value == 0) + { + _items = _emptyArray; + return; + } + + var newItems = new T[value]; + CopyTo(newItems); + + _frontArrayIndex = 0; + _items = null; + _items = newItems; + } + } + + /// + /// Gets or sets the element at the specified index. + /// + /// The zero-based index of the element to get or set. + /// The element at the specified index. + /// + /// Index was out of range. Must be non-negative and less than . + /// + /// + /// + /// + /// Use 0 for the to get or set the element at the beginning of the + /// , and use - 1 for the to get the + /// element at the end of the . + /// + /// + public T this[int index] + { + get + { + var arrayIndex = GetArrayIndex(index); + if (arrayIndex == -1) + { + throw new ArgumentOutOfRangeException(nameof(index), + "Index was out of range. Must be non-negative and less than the size of the collection."); + } + return _items[arrayIndex]; + } + set + { + var arrayIndex = GetArrayIndex(index); + if (arrayIndex == -1) + { + throw new ArgumentOutOfRangeException(nameof(index), + "Index was out of range. Must be non-negative and less than the size of the collection."); + } + _items[arrayIndex] = value; + } + } + + /// + /// Gets the number of elements contained in the . + /// + /// The number of elements contained in the . + public int Count { get; private set; } + + bool ICollection.IsReadOnly => false; + + /// + /// Returns an enumerator that iterates through the . + /// + /// An that can be used to iterate through the . + public IEnumerator GetEnumerator() + { + if (Count == 0) + yield break; + + if (Count <= _items.Length - _frontArrayIndex) + { + for (var i = _frontArrayIndex; i < _frontArrayIndex + Count; i++) + yield return _items[i]; + } + else + { + for (var i = _frontArrayIndex; i < Capacity; i++) + yield return _items[i]; + for (var i = 0; i < (_frontArrayIndex + Count)%Capacity; i++) + yield return _items[i]; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + void ICollection.Add(T item) + { + AddToBack(item); + } + + /// + /// Searches for the specified element and returns the zero-based index of the first occurrence within the entire + /// . + /// + /// + /// The element to locate in the . The value can be null for reference + /// types. + /// + /// + /// The zero-based index of the first occurrence of within the entire + /// , if found; otherwise, -1. + /// + /// + /// + /// This method is an O(1) operation if is at the front or back of the + /// ; otherwise, this method is an O(n) operation where n is . + /// + /// + public int IndexOf(T item) + { + var comparer = EqualityComparer.Default; + T checkFrontBackItem; + if (Get(0, out checkFrontBackItem) && comparer.Equals(checkFrontBackItem, item)) + return 0; + var backIndex = Count - 1; + if (Get(backIndex, out checkFrontBackItem) && comparer.Equals(checkFrontBackItem, item)) + return backIndex; + + int index; + if (Count <= _items.Length - _frontArrayIndex) + index = Array.IndexOf(_items, item, _frontArrayIndex, Count); + else + { + index = Array.IndexOf(_items, item, _frontArrayIndex, _items.Length - _frontArrayIndex); + if (index < 0) + index = Array.IndexOf(_items, item, 0, _frontArrayIndex + Count - _items.Length); + } + + var circularIndex = (index - _frontArrayIndex + _items.Length)%_items.Length; + return circularIndex; + } + + void IList.Insert(int index, T item) + { + throw new NotImplementedException(); + } + + /// + /// Removes the first occurrence of a specific element from the . + /// + /// + /// The element to remove from the . The value can be null for reference + /// types. + /// + /// + /// true if was successfully removed; otherwise, false. This method also returns false + /// if is not found in the . + /// + /// + /// + /// This method is an O(1) operation if is at the front or back of the + /// ; otherwise, this method is an O(n) operation where n is . + /// + /// + public bool Remove(T item) + { + var index = IndexOf(item); + if (index == -1) + return false; + + RemoveAt(index); + return true; + } + + /// + /// Removes the element at the specified index of the . + /// + /// The zero-based index of the element to remove. + /// + /// is less than 0. + /// -or- + /// is equal to or greater than . + /// + public void RemoveAt(int index) + { + if (index < 0) + throw new ArgumentOutOfRangeException(nameof(index), index, "Index was less than zero."); + + if (index >= Count) + throw new ArgumentOutOfRangeException(nameof(index), index, "Index was equal or greater than Count."); + + if (index == 0) + { + RemoveFromFront(); + } + else + { + if (index == Count - 1) + { + RemoveFromBack(); + } + else + { + if (index < Count/2) + { + var arrayIndex = GetArrayIndex(index); + // shift the array from 0 to before the index to remove by 1 to the right + // the element to remove is replaced by the copy + Array.Copy(_items, 0, _items, 1, arrayIndex); + // the first element in the arrya is now either a duplicate or it's default value + // to be safe set it to it's default value regardless of circumstance + _items[0] = default(T); + // if we shifted the front element, adjust the front index + if (_frontArrayIndex < arrayIndex) + _frontArrayIndex = (_frontArrayIndex + 1)%_items.Length; + // decrement the count so the back index is calculated correctly + Count--; + } + else + { + var arrayIndex = GetArrayIndex(index); + // shift the array from the center of the array to before the index to remove by 1 to the right + // the element to remove is replaced by the copy + var arrayCenterIndex = _items.Length/2; + Array.Copy(_items, arrayCenterIndex, _items, arrayCenterIndex + 1, _items.Length - 1 - arrayIndex); + // the last element in the array is now either a duplicate or it's default value + // to be safe set it to it's default value regardless of circumstance + _items[_items.Length - 1] = default(T); + // if we shifted the front element, adjust the front index + if (_frontArrayIndex < arrayIndex) + _frontArrayIndex = (_frontArrayIndex + 1)%_items.Length; + // decrement the count so the back index is calculated correctly + Count--; + } + } + } + } + + /// + /// Removes all elements from the . + /// + /// + /// + /// is set to 0, and references to other objects from elements of the collection are + /// also released. + /// + /// + /// remains unchanged. To reset the capacity of the , call the + /// method or set the property explictly. Decreasing, or + /// increasing, the capacity reallocates memory and copies all the elements in the . + /// Trimming an empty sets to the default capacity. + /// + /// This method is an O(n) operation, where n is . + /// + public void Clear() + { + // allow the garbage collector to reclaim the references + + if (Count == 0) + return; + + if (Count > _items.Length - _frontArrayIndex) + { + Array.Clear(_items, _frontArrayIndex, _items.Length - _frontArrayIndex); + Array.Clear(_items, 0, _frontArrayIndex + Count - _items.Length); + } + else + Array.Clear(_items, _frontArrayIndex, Count); + Count = 0; + _frontArrayIndex = 0; + } + + /// + /// Determines whether an element is in the . + /// + /// + /// The element to locate in the . The value can be null for reference + /// types. + /// + /// true if is found in the ; otherwise, false. + /// + /// + /// This method determines equality by using the default equality comparer, as defined by the object's + /// implementation + /// of the method for the type of values in the list. + /// + /// + /// This method performs a linear search; therefore, this method is an O(n) operation, where n is + /// . + /// + /// + public bool Contains(T item) + { + return this.Contains(item, EqualityComparer.Default); + } + + /// + /// Copies the entire to a compatible one-dimensional array, starting at the specified index of + /// the target array. + /// + /// + /// The one-dimensional that is the destination of the elements copied from + /// . The must have zero-based indexing. + /// + /// The zero-based index in at which copying begins. + /// is null. + /// is less than 0. + /// + /// The number of elements in the source is greater than the + /// available space from to the end of the destination . + /// + /// + /// This method uses to copy the elements. The elements are + /// copied to the in the same order in which the enumerator iterates + /// through the . This method is an O(n) operation, where n is . + /// + public void CopyTo(T[] array, int arrayIndex = 0) + { + if (array == null) + throw new ArgumentNullException(nameof(array)); + + if (array.Rank != 1) + throw new ArgumentException("Only single dimensional arrays are supported for the requested action."); + + if (arrayIndex < 0) + throw new ArgumentOutOfRangeException(nameof(arrayIndex), "Index was less than the array's lower bound."); + + if (arrayIndex >= array.Length) + { + throw new ArgumentOutOfRangeException(nameof(arrayIndex), + "Index was greater than the array's upper bound."); + } + + if (array.Length - arrayIndex < Count) + throw new ArgumentException("Destination array was not long enough."); + + if (Count == 0) + return; + + + try + { + var loopsAround = Count > _items.Length - _frontArrayIndex; + if (!loopsAround) + Array.Copy(_items, _frontArrayIndex, array, arrayIndex, Count); + else + { + Array.Copy(_items, _frontArrayIndex, array, arrayIndex, Capacity - _frontArrayIndex); + Array.Copy(_items, 0, array, arrayIndex + Capacity - _frontArrayIndex, + _frontArrayIndex + (Count - Capacity)); + } + } + catch (ArrayTypeMismatchException) + { + throw new ArgumentException( + "Target array type is not compatible with the type of items in the collection."); + } + } + /// /// Sets the capacity to the actual number of elements in the , if that number is less than a /// threshold value. @@ -252,34 +536,26 @@ namespace MonoGame.Extended.Collections /// public void TrimExcess() { - if (Count > (int)(_items.Length * 0.9)) - { + if (Count > (int) (_items.Length*0.9)) return; - } Capacity = Count; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private int GetArrayIndex(int index) { - if (index < 0 || index >= Count) - { + if ((index < 0) || (index >= Count)) return -1; - } - return _items.Length != 0 ? (_frontArrayIndex + index) % _items.Length : 0; + return _items.Length != 0 ? (_frontArrayIndex + index)%_items.Length : 0; } private void EnsureCapacity(int minimumCapacity) { if (_items.Length >= minimumCapacity) - { return; - } var newCapacity = _defaultCapacity; if (_items.Length > 0) - { newCapacity = _resizeFunction(_items.Length); - } newCapacity = Math.Max(newCapacity, minimumCapacity); Capacity = newCapacity; } @@ -302,7 +578,7 @@ namespace MonoGame.Extended.Collections public void AddToFront(T item) { EnsureCapacity(Count + 1); - _frontArrayIndex = (_frontArrayIndex - 1 + _items.Length) % _items.Length; + _frontArrayIndex = (_frontArrayIndex - 1 + _items.Length)%_items.Length; _items[_frontArrayIndex] = item; Count++; } @@ -325,7 +601,7 @@ namespace MonoGame.Extended.Collections public void AddToBack(T item) { EnsureCapacity(Count + 1); - var index = (_frontArrayIndex + Count++) % _items.Length; + var index = (_frontArrayIndex + Count++)%_items.Length; _items[index] = item; } @@ -425,10 +701,10 @@ namespace MonoGame.Extended.Collections return false; } - var index = _frontArrayIndex % _items.Length; + var index = _frontArrayIndex%_items.Length; item = _items[index]; _items[index] = default(T); - _frontArrayIndex = (_frontArrayIndex + 1) % _items.Length; + _frontArrayIndex = (_frontArrayIndex + 1)%_items.Length; Count--; return true; } @@ -458,13 +734,11 @@ namespace MonoGame.Extended.Collections public bool RemoveFromFront() { if (Count == 0) - { return false; - } - var index = _frontArrayIndex % _items.Length; + var index = _frontArrayIndex%_items.Length; _items[index] = default(T); - _frontArrayIndex = (_frontArrayIndex + 1) % _items.Length; + _frontArrayIndex = (_frontArrayIndex + 1)%_items.Length; Count--; return true; } @@ -505,7 +779,7 @@ namespace MonoGame.Extended.Collections return false; } - var circularBackIndex = (_frontArrayIndex + (Count - 1)) % _items.Length; + var circularBackIndex = (_frontArrayIndex + (Count - 1))%_items.Length; item = _items[circularBackIndex]; _items[circularBackIndex] = default(T); Count--; @@ -537,338 +811,12 @@ namespace MonoGame.Extended.Collections public bool RemoveFromBack() { if (Count == 0) - { return false; - } - var circularBackIndex = (_frontArrayIndex + (Count - 1)) % _items.Length; + var circularBackIndex = (_frontArrayIndex + (Count - 1))%_items.Length; _items[circularBackIndex] = default(T); Count--; return true; } - - /// - /// Returns an enumerator that iterates through the . - /// - /// An that can be used to iterate through the . - public IEnumerator GetEnumerator() - { - if (Count == 0) - { - yield break; - } - - if (Count <= _items.Length - _frontArrayIndex) - { - for (var i = _frontArrayIndex; i < _frontArrayIndex + Count; i++) - { - yield return _items[i]; - } - } - else - { - for (var i = _frontArrayIndex; i < Capacity; i++) - { - yield return _items[i]; - } - for (var i = 0; i < (_frontArrayIndex + Count) % Capacity; i++) - { - yield return _items[i]; - } - } - } - - IEnumerator IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - - void ICollection.Add(T item) - { - AddToBack(item); - } - - /// - /// Searches for the specified element and returns the zero-based index of the first occurrence within the entire - /// . - /// - /// - /// The element to locate in the . The value can be null for reference - /// types. - /// - /// - /// The zero-based index of the first occurrence of within the entire - /// , if found; otherwise, -1. - /// - /// - /// - /// This method is an O(1) operation if is at the front or back of the - /// ; otherwise, this method is an O(n) operation where n is . - /// - /// - public int IndexOf(T item) - { - var comparer = EqualityComparer.Default; - T checkFrontBackItem; - if (Get(0, out checkFrontBackItem) && comparer.Equals(checkFrontBackItem, item)) - { - return 0; - } - var backIndex = Count - 1; - if (Get(backIndex, out checkFrontBackItem) && comparer.Equals(checkFrontBackItem, item)) - { - return backIndex; - } - - int index; - if (Count <= _items.Length - _frontArrayIndex) - { - index = Array.IndexOf(_items, item, _frontArrayIndex, Count); - } - else - { - index = Array.IndexOf(_items, item, _frontArrayIndex, _items.Length - _frontArrayIndex); - if (index < 0) - { - index = Array.IndexOf(_items, item, 0, _frontArrayIndex + Count - _items.Length); - } - } - - var circularIndex = (index - _frontArrayIndex + _items.Length) % _items.Length; - return circularIndex; - } - - void IList.Insert(int index, T item) - { - throw new NotImplementedException(); - } - - /// - /// Removes the first occurrence of a specific element from the . - /// - /// - /// The element to remove from the . The value can be null for reference - /// types. - /// - /// - /// true if was successfully removed; otherwise, false. This method also returns false - /// if is not found in the . - /// - /// - /// - /// This method is an O(1) operation if is at the front or back of the - /// ; otherwise, this method is an O(n) operation where n is . - /// - /// - public bool Remove(T item) - { - var index = IndexOf(item); - if (index == -1) - { - return false; - } - - RemoveAt(index); - return true; - } - - /// - /// Removes the element at the specified index of the . - /// - /// The zero-based index of the element to remove. - /// - /// is less than 0. - /// -or- - /// is equal to or greater than . - /// - public void RemoveAt(int index) - { - if (index < 0) - { - throw new ArgumentOutOfRangeException(nameof(index), index, "Index was less than zero."); - } - - if (index >= Count) - { - throw new ArgumentOutOfRangeException(nameof(index), index, "Index was equal or greater than Count."); - } - - if (index == 0) - { - RemoveFromFront(); - } - else if (index == Count - 1) - { - RemoveFromBack(); - } - else if (index < Count / 2) - { - var arrayIndex = GetArrayIndex(index); - // shift the array from 0 to before the index to remove by 1 to the right - // the element to remove is replaced by the copy - Array.Copy(_items, 0, _items, 1, arrayIndex); - // the first element in the arrya is now either a duplicate or it's default value - // to be safe set it to it's default value regardless of circumstance - _items[0] = default(T); - // if we shifted the front element, adjust the front index - if (_frontArrayIndex < arrayIndex) - { - _frontArrayIndex = (_frontArrayIndex + 1) % _items.Length; - } - // decrement the count so the back index is calculated correctly - Count--; - } - else - { - var arrayIndex = GetArrayIndex(index); - // shift the array from the center of the array to before the index to remove by 1 to the right - // the element to remove is replaced by the copy - var arrayCenterIndex = _items.Length / 2; - Array.Copy(_items, arrayCenterIndex, _items, arrayCenterIndex + 1, _items.Length - 1 - arrayIndex); - // the last element in the array is now either a duplicate or it's default value - // to be safe set it to it's default value regardless of circumstance - _items[_items.Length - 1] = default(T); - // if we shifted the front element, adjust the front index - if (_frontArrayIndex < arrayIndex) - { - _frontArrayIndex = (_frontArrayIndex + 1) % _items.Length; - } - // decrement the count so the back index is calculated correctly - Count--; - } - } - - /// - /// Removes all elements from the . - /// - /// - /// - /// is set to 0, and references to other objects from elements of the collection are - /// also released. - /// - /// - /// remains unchanged. To reset the capacity of the , call the - /// method or set the property explictly. Decreasing, or - /// increasing, the capacity reallocates memory and copies all the elements in the . - /// Trimming an empty sets to the default capacity. - /// - /// This method is an O(n) operation, where n is . - /// - public void Clear() - { - // allow the garbage collector to reclaim the references - - if (Count == 0) - { - return; - } - - if (Count > _items.Length - _frontArrayIndex) - { - Array.Clear(_items, _frontArrayIndex, _items.Length - _frontArrayIndex); - Array.Clear(_items, 0, _frontArrayIndex + Count - _items.Length); - } - else - { - Array.Clear(_items, _frontArrayIndex, Count); - } - Count = 0; - _frontArrayIndex = 0; - } - - /// - /// Determines whether an element is in the . - /// - /// - /// The element to locate in the . The value can be null for reference - /// types. - /// - /// true if is found in the ; otherwise, false. - /// - /// - /// This method determines equality by using the default equality comparer, as defined by the object's - /// implementation - /// of the method for the type of values in the list. - /// - /// - /// This method performs a linear search; therefore, this method is an O(n) operation, where n is - /// . - /// - /// - public bool Contains(T item) - { - return this.Contains(item, EqualityComparer.Default); - } - - /// - /// Copies the entire to a compatible one-dimensional array, starting at the specified index of - /// the target array. - /// - /// - /// The one-dimensional that is the destination of the elements copied from - /// . The must have zero-based indexing. - /// - /// The zero-based index in at which copying begins. - /// is null. - /// is less than 0. - /// - /// The number of elements in the source is greater than the - /// available space from to the end of the destination . - /// - /// - /// This method uses to copy the elements. The elements are - /// copied to the in the same order in which the enumerator iterates - /// through the . This method is an O(n) operation, where n is . - /// - public void CopyTo(T[] array, int arrayIndex = 0) - { - if (array == null) - { - throw new ArgumentNullException(nameof(array)); - } - - if (array.Rank != 1) - { - throw new ArgumentException("Only single dimensional arrays are supported for the requested action."); - } - - if (arrayIndex < 0) - { - throw new ArgumentOutOfRangeException(nameof(arrayIndex), "Index was less than the array's lower bound."); - } - - if (arrayIndex >= array.Length) - { - throw new ArgumentOutOfRangeException(nameof(arrayIndex), "Index was greater than the array's upper bound."); - } - - if (Count == 0) - { - return; - } - - if (array.Length - arrayIndex < Count) - { - throw new ArgumentException("Destination array was not long enough."); - } - - try - { - var loopsAround = Count > _items.Length - _frontArrayIndex; - if (!loopsAround) - { - Array.Copy(_items, _frontArrayIndex, array, arrayIndex, Count); - } - else - { - Array.Copy(_items, _frontArrayIndex, array, arrayIndex, Capacity - _frontArrayIndex); - Array.Copy(_items, 0, array, arrayIndex + Capacity - _frontArrayIndex, _frontArrayIndex + (Count - Capacity)); - } - } - catch (ArrayTypeMismatchException) - { - throw new ArgumentException("Target array type is not compatible with the type of items in the collection."); - } - } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Collections/DictionaryExtensions.cs b/Source/MonoGame.Extended/Collections/DictionaryExtensions.cs new file mode 100644 index 00000000..ee581b79 --- /dev/null +++ b/Source/MonoGame.Extended/Collections/DictionaryExtensions.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; + +namespace MonoGame.Extended.Collections +{ + public static class DictionaryExtensions + { + public static TValue GetValueOrDefault(this Dictionary dictionary, TKey key) + { + return GetValueOrDefault(dictionary, key, default(TValue)); + } + + public static TValue GetValueOrDefault(this Dictionary dictionary, TKey key, TValue defaultValue) + { + TValue value; + return dictionary.TryGetValue(key, out value) ? value : defaultValue; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Collections/IObservableCollection.cs b/Source/MonoGame.Extended/Collections/IObservableCollection.cs new file mode 100644 index 00000000..bb4fe16f --- /dev/null +++ b/Source/MonoGame.Extended/Collections/IObservableCollection.cs @@ -0,0 +1,26 @@ +using System; + +namespace MonoGame.Extended.Collections +{ + /// Interface for collections that can be observed + /// Type of items managed in the collection + public interface IObservableCollection + { + /// Raised when an item has been added to the collection + event EventHandler> ItemAdded; + + /// Raised when an item is removed from the collection + event EventHandler> ItemRemoved; + + /// Raised when the collection is about to be cleared + /// + /// This could be covered by calling ItemRemoved for each item currently + /// contained in the collection, but it is often simpler and more efficient + /// to process the clearing of the entire collection as a special operation. + /// + event EventHandler Clearing; + + /// Raised when the collection has been cleared of its items + event EventHandler Cleared; + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Collections/ItemEventArgs.cs b/Source/MonoGame.Extended/Collections/ItemEventArgs.cs new file mode 100644 index 00000000..0da853b5 --- /dev/null +++ b/Source/MonoGame.Extended/Collections/ItemEventArgs.cs @@ -0,0 +1,20 @@ +using System; + +namespace MonoGame.Extended.Collections +{ + /// + /// Arguments class for collections wanting to hand over an item in an event + /// + public class ItemEventArgs : EventArgs + { + /// Initializes a new event arguments supplier + /// Item to be supplied to the event handler + public ItemEventArgs(T item) + { + Item = item; + } + + /// Obtains the collection item the event arguments are carrying + public T Item { get; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Collections/ObservableCollection.cs b/Source/MonoGame.Extended/Collections/ObservableCollection.cs new file mode 100644 index 00000000..de827df1 --- /dev/null +++ b/Source/MonoGame.Extended/Collections/ObservableCollection.cs @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; + +namespace MonoGame.Extended.Collections +{ + public class ObservableCollection : Collection, IObservableCollection + { + /// + /// Initializes a new instance of the ObservableCollection class that is empty. + /// + public ObservableCollection() + { + } + + /// + /// Initializes a new instance of the ObservableCollection class as a wrapper + /// for the specified list. + /// + /// The list that is wrapped by the new collection. + /// + /// List is null. + /// + public ObservableCollection(IList list) : base(list) + { + } + + /// Raised when an item has been added to the collection + public event EventHandler> ItemAdded; + + /// Raised when an item is removed from the collection + public event EventHandler> ItemRemoved; + + /// Raised when the collection is about to be cleared + /// + /// This could be covered by calling ItemRemoved for each item currently + /// contained in the collection, but it is often simpler and more efficient + /// to process the clearing of the entire collection as a special operation. + /// + public event EventHandler Clearing; + + /// Raised when the collection has been cleared + public event EventHandler Cleared; + + /// Removes all elements from the Collection + protected override void ClearItems() + { + OnClearing(); + base.ClearItems(); + OnCleared(); + } + + /// + /// Inserts an element into the ObservableCollection at the specified index + /// + /// + /// The object to insert. The value can be null for reference types. + /// + /// The zero-based index at which item should be inserted + protected override void InsertItem(int index, T item) + { + base.InsertItem(index, item); + OnAdded(item); + } + + /// + /// Removes the element at the specified index of the ObservableCollection + /// + /// The zero-based index of the element to remove + protected override void RemoveItem(int index) + { + var item = base[index]; + base.RemoveItem(index); + OnRemoved(item); + } + + /// Replaces the element at the specified index + /// + /// The new value for the element at the specified index. The value can be null + /// for reference types + /// + /// The zero-based index of the element to replace + protected override void SetItem(int index, T item) + { + var oldItem = base[index]; + base.SetItem(index, item); + OnRemoved(oldItem); + OnAdded(item); + } + + /// Fires the 'ItemAdded' event + /// Item that has been added to the collection + protected virtual void OnAdded(T item) + { + ItemAdded?.Invoke(this, new ItemEventArgs(item)); + } + + /// Fires the 'ItemRemoved' event + /// Item that has been removed from the collection + protected virtual void OnRemoved(T item) + { + ItemRemoved?.Invoke(this, new ItemEventArgs(item)); + } + + /// Fires the 'Clearing' event + protected virtual void OnClearing() + { + Clearing?.Invoke(this, EventArgs.Empty); + } + + /// Fires the 'Cleared' event + protected virtual void OnCleared() + { + Cleared?.Invoke(this, EventArgs.Empty); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Collections/Pool.cs b/Source/MonoGame.Extended/Collections/Pool.cs index 69889313..072ff728 100644 --- a/Source/MonoGame.Extended/Collections/Pool.cs +++ b/Source/MonoGame.Extended/Collections/Pool.cs @@ -12,7 +12,8 @@ namespace MonoGame.Extended.Collections /// /// /// Requesting a free element from the is a O(1) operation. Returning a used element back to - /// the is an O(1) operation for the oldest or newest elements or O(n) otherwise, where n is the . + /// the is an O(1) operation for the oldest or newest elements or O(n) otherwise, where n is + /// the . /// /// /// @@ -47,7 +48,7 @@ namespace MonoGame.Extended.Collections /// // Helper method for this instance that should reset the state in preperation for the next time it is requested /// public void Reset() /// { - /// // TODO: Reset the state of your object here + /// // Reset the state of your object here /// } /// /// // Called by you or the Pool when this object is to be returned @@ -79,25 +80,8 @@ namespace MonoGame.Extended.Collections // on a 32-bit machine, a reference is 4 bytes // on a 64-bit machine, a reference is 8 bytes private readonly Deque _freeItems; - private readonly Deque _usedItems; private readonly Func _instantiationFunction; - - /// - /// Gets the number of elements contained in the . - /// - /// The number of elements contained in the . - public int Count => _usedItems.Count; - - /// - /// Gets or sets the total number of elements the internal data structure can hold. - /// - /// The number of elements that the can contain. - /// - /// Once set, can not be changed. - /// - public int Capacity => _usedItems.Count; - - bool ICollection.IsReadOnly => true; + private readonly Deque _usedItems; /// /// Initializes a new instance of the class that has a specified capacity and an element @@ -108,9 +92,7 @@ namespace MonoGame.Extended.Collections public Pool(int capacity, Func instantiationFunction) { if (instantiationFunction == null) - { throw new ArgumentNullException(nameof(instantiationFunction)); - } _instantiationFunction = instantiationFunction; _freeItems = new Deque(capacity); @@ -122,60 +104,22 @@ namespace MonoGame.Extended.Collections } } - private T CreateObject(int index) - { - var newObject = _instantiationFunction(index); - if (newObject == null) - { - throw new NullReferenceException($"The created pooled object of type '{typeof (T).Name}' is null."); - } - return newObject; - } + /// + /// Gets or sets the total number of elements the internal data structure can hold. + /// + /// The number of elements that the can contain. + /// + /// Once set, can not be changed. + /// + public int Capacity => _usedItems.Count; /// - /// Get a free element from the . + /// Gets the number of elements contained in the . /// - /// - /// true to forcibly kill an existing, in use, element in the if is - /// equal to ; otherwise, false. - /// - /// A free element from the . - /// - /// This method is an O(1) operation. - /// - public T Request(bool killExistingObjectIfFull = false) - { - while (true) - { - T poolable; + /// The number of elements contained in the . + public int Count => _usedItems.Count; - if (_freeItems.RemoveFromFront(out poolable)) - { - poolable.Initialize(Return); - _usedItems.AddToBack(poolable); - return poolable; - } - - if (!killExistingObjectIfFull) - { - return null; - } - if (!_usedItems.GetFront(out poolable)) - { - return null; - } - - poolable.Return(); - killExistingObjectIfFull = false; - } - } - - private void Return(IPoolable poolable) - { - var poolable1 = (T)poolable; - _freeItems.AddToBack(poolable1); - _usedItems.Remove(poolable1); - } + bool ICollection.IsReadOnly => true; public IEnumerator GetEnumerator() { @@ -228,7 +172,54 @@ namespace MonoGame.Extended.Collections { _usedItems.CopyTo(array, arrayIndex); } + + private T CreateObject(int index) + { + var newObject = _instantiationFunction(index); + if (newObject == null) + throw new NullReferenceException($"The created pooled object of type '{typeof(T).Name}' is null."); + return newObject; + } + + /// + /// Get a free element from the . + /// + /// + /// true to forcibly kill an existing, in use, element in the if is + /// equal to ; otherwise, false. + /// + /// A free element from the . + /// + /// This method is an O(1) operation. + /// + public T Request(bool killExistingObjectIfFull = false) + { + while (true) + { + T poolable; + + if (_freeItems.RemoveFromFront(out poolable)) + { + poolable.Initialize(Return); + _usedItems.AddToBack(poolable); + return poolable; + } + + if (!killExistingObjectIfFull) + return null; + if (!_usedItems.GetFront(out poolable)) + return null; + + poolable.Return(); + killExistingObjectIfFull = false; + } + } + + private void Return(IPoolable poolable) + { + var poolable1 = (T) poolable; + _freeItems.AddToBack(poolable1); + _usedItems.Remove(poolable1); + } } -} - - +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/ColorExtensions.cs b/Source/MonoGame.Extended/ColorExtensions.cs new file mode 100644 index 00000000..794665b5 --- /dev/null +++ b/Source/MonoGame.Extended/ColorExtensions.cs @@ -0,0 +1,20 @@ +using System.Globalization; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended +{ + /// + /// Provides additional methods for working with color + /// + public static class ColorExtensions + { + public static Color FromHex(string value) + { + var r = int.Parse(value.Substring(1, 2), NumberStyles.HexNumber); + var g = int.Parse(value.Substring(3, 2), NumberStyles.HexNumber); + var b = int.Parse(value.Substring(5, 2), NumberStyles.HexNumber); + var a = value.Length > 7 ? int.Parse(value.Substring(7, 2), NumberStyles.HexNumber) : 255; + return new Color(r, g, b, a); + } + } +} diff --git a/Source/MonoGame.Extended/ColorHelper.cs b/Source/MonoGame.Extended/ColorHelper.cs new file mode 100644 index 00000000..370af3dc --- /dev/null +++ b/Source/MonoGame.Extended/ColorHelper.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Reflection; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended +{ + public static class ColorHelper + { + //http://stackoverflow.com/questions/2353211/hsl-to-rgb-color-conversion + public static Color FromHsl(float hue, float saturation, float lightness) + { + var hsl = new Vector4(hue, saturation, lightness, 1); + var color = new Vector4(0, 0, 0, hsl.W); + + // ReSharper disable once CompareOfFloatsByEqualityOperator + if (hsl.Y == 0.0f) + color.X = color.Y = color.Z = hsl.Z; + else + { + var q = hsl.Z < 0.5f ? hsl.Z*(1.0f + hsl.Y) : hsl.Z + hsl.Y - hsl.Z*hsl.Y; + var p = 2.0f*hsl.Z - q; + + color.X = HueToRgb(p, q, hsl.X + 1.0f/3.0f); + color.Y = HueToRgb(p, q, hsl.X); + color.Z = HueToRgb(p, q, hsl.X - 1.0f/3.0f); + } + + return new Color(color); + } + + private static float HueToRgb(float p, float q, float t) + { + if (t < 0.0f) t += 1.0f; + if (t > 1.0f) t -= 1.0f; + if (t < 1.0f/6.0f) return p + (q - p)*6.0f*t; + if (t < 1.0f/2.0f) return q; + if (t < 2.0f/3.0f) return p + (q - p)*(2.0f/3.0f - t)*6.0f; + return p; + } + + public static Color FromHex(string value) + { + if (string.IsNullOrEmpty(value)) + return Color.Transparent; + var startIndex = 0; + if (value.StartsWith("#")) + startIndex++; + var r = int.Parse(value.Substring(startIndex, 2), NumberStyles.HexNumber); + var g = int.Parse(value.Substring(startIndex + 2, 2), NumberStyles.HexNumber); + var b = int.Parse(value.Substring(startIndex + 4, 2), NumberStyles.HexNumber); + var a = value.Length > 6 + startIndex ? int.Parse(value.Substring(startIndex + 6, 2), NumberStyles.HexNumber) : 255; + + return new Color(r, g, b, a); + } + + public static string ToHex(Color color) + { + var rx = $"{color.R:x2}"; + var gx = $"{color.G:x2}"; + var bx = $"{color.B:x2}"; + var ax = $"{color.A:x2}"; + return $"#{rx}{gx}{bx}{ax}"; + } + + private static readonly Dictionary _colorsByName = typeof(Color) + .GetRuntimeProperties() + .Where(p => p.PropertyType == typeof(Color)) + .ToDictionary(p => p.Name, p => (Color) p.GetValue(null), StringComparer.OrdinalIgnoreCase); + + public static Color FromName(string name) + { + Color color; + + if(_colorsByName.TryGetValue(name, out color)) + return color; + + throw new InvalidOperationException($"{name} is not a valid color"); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Content/ContentManagerExtensions.cs b/Source/MonoGame.Extended/Content/ContentManagerExtensions.cs index 3651c80e..dd323e4f 100644 --- a/Source/MonoGame.Extended/Content/ContentManagerExtensions.cs +++ b/Source/MonoGame.Extended/Content/ContentManagerExtensions.cs @@ -18,8 +18,9 @@ namespace MonoGame.Extended.Content { // http://konaju.com/?p=21 var serviceProvider = contentManager.ServiceProvider; - var graphicsDeviceService = (IGraphicsDeviceService) serviceProvider.GetService(typeof(IGraphicsDeviceService)); + var graphicsDeviceService = + (IGraphicsDeviceService) serviceProvider.GetService(typeof(IGraphicsDeviceService)); return graphicsDeviceService.GraphicsDevice; } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Content/ContentReaderExtensions.cs b/Source/MonoGame.Extended/Content/ContentReaderExtensions.cs index 111383d7..9dbc35f3 100644 --- a/Source/MonoGame.Extended/Content/ContentReaderExtensions.cs +++ b/Source/MonoGame.Extended/Content/ContentReaderExtensions.cs @@ -1,34 +1,45 @@ using System; -using System.Collections.Generic; -using System.Linq; +using System.IO; +using System.Reflection; using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.Graphics; namespace MonoGame.Extended.Content { - internal static class ContentReaderExtensions + public static class ContentReaderExtensions { - public static string GetRelativeAssetPath(this ContentReader contentReader, string relativePath) - { - var assetName = contentReader.AssetName; - var assetNodes = assetName.Split(new[] { '/', '\\' }, StringSplitOptions.RemoveEmptyEntries); - var relativeNodes = relativePath.Split(new[] { '/', '\\' }, StringSplitOptions.RemoveEmptyEntries); - var relativeIndex = assetNodes.Length - 1; - var newPathNodes = new List(); + private static readonly FieldInfo _contentReaderGraphicsDeviceFieldInfo = typeof(ContentReader).GetTypeInfo().GetDeclaredField("graphicsDevice"); + private static byte[] _scratchBuffer; - foreach (var relativeNode in relativeNodes) + public static GraphicsDevice GetGraphicsDevice(this ContentReader contentReader) + { + return (GraphicsDevice)_contentReaderGraphicsDeviceFieldInfo.GetValue(contentReader); + } + + public static string GetRelativeAssetName(this ContentReader contentReader, string relativeName) + { + var assetDirectory = Path.GetDirectoryName(contentReader.AssetName); + var assetName = Path.Combine(assetDirectory, relativeName).Replace('\\', '/'); + + var ellipseIndex = assetName.IndexOf("/../", StringComparison.Ordinal); + while (ellipseIndex != -1) { - if (relativeNode == "..") - relativeIndex--; - else - newPathNodes.Add(relativeNode); + var lastDirectoryIndex = assetName.LastIndexOf('/', ellipseIndex - 1); + if (lastDirectoryIndex == -1) + lastDirectoryIndex = 0; + assetName = assetName.Remove(lastDirectoryIndex, ellipseIndex + 4); + ellipseIndex = assetName.IndexOf("/../", StringComparison.Ordinal); } - var values = assetNodes - .Take(relativeIndex) - .Concat(newPathNodes) - .ToArray(); + return assetName; + } - return string.Join("/", values); + internal static byte[] GetScratchBuffer(this ContentReader contentReader, int size) + { + size = Math.Max(size, 1024 * 1024); + if (_scratchBuffer == null || _scratchBuffer.Length < size) + _scratchBuffer = new byte[size]; + return _scratchBuffer; } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/EllipseF.cs b/Source/MonoGame.Extended/EllipseF.cs new file mode 100644 index 00000000..8676bcbb --- /dev/null +++ b/Source/MonoGame.Extended/EllipseF.cs @@ -0,0 +1,48 @@ +using System; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended +{ + public class EllipseF + { + public EllipseF(Vector2 center, float radiusX, float radiusY) + { + Center = center; + RadiusX = radiusX; + RadiusY = radiusY; + } + + public Vector2 Center { get; set; } + public float RadiusX { get; set; } + public float RadiusY { get; set; } + public float Left => Center.X - RadiusX; + public float Top => Center.Y - RadiusY; + public float Right => Center.X + RadiusX; + public float Bottom => Center.Y + RadiusY; + + public RectangleF BoundingRectangle + { + get + { + var minX = Left; + var minY = Top; + var maxX = Right; + var maxY = Bottom; + return new RectangleF(minX, minY, maxX - minX, maxY - minY); + } + } + + public bool Contains(float x, float y) + { + float xCalc = (float) (Math.Pow(x - Center.X, 2) / Math.Pow(RadiusX, 2)); + float yCalc = (float) (Math.Pow(y - Center.Y, 2) / Math.Pow(RadiusY, 2)); + + return xCalc + yCalc <= 1; + } + + public bool Contains(Vector2 point) + { + return Contains(point.X, point.Y); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/EventHandlerExtensions.cs b/Source/MonoGame.Extended/EventHandlerExtensions.cs deleted file mode 100644 index 848b14e2..00000000 --- a/Source/MonoGame.Extended/EventHandlerExtensions.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; - -namespace MonoGame.Extended -{ - internal static class EventHandlerExtensions - { - public static void Raise(this EventHandler eventHandler, object sender, T args) - where T : EventArgs - { - var handler = eventHandler; - - if (handler != null) - handler(sender, args); - } - - public static void Raise(this EventHandler eventHandler, object sender, EventArgs args) - { - var handler = eventHandler; - - if (handler != null) - handler(sender, args); - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/FastRandom.cs b/Source/MonoGame.Extended/FastRandom.cs new file mode 100644 index 00000000..472518b6 --- /dev/null +++ b/Source/MonoGame.Extended/FastRandom.cs @@ -0,0 +1,127 @@ +using System; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended +{ + /// + /// A random number generator that uses a fast algorithm to generate random values. + /// The speed comes at the price of true 'randomness' though, there are noticeable + /// patterns & it compares quite unfavourably to other algorithms in that respect. + /// It's a good choice in situations where speed is more desirable than a + /// good random distribution, and a poor choice when random distribution is important. + /// + public class FastRandom + { + private int _state; + + public FastRandom() + : this(1) + { + } + + public FastRandom(int seed) + { + if (seed < 1) + throw new ArgumentOutOfRangeException(nameof(seed), "seed must be greater than zero"); + + _state = seed; + } + + /// + /// Gets the next random integer value. + /// + /// A random positive integer. + public int Next() + { + _state = 214013*_state + 2531011; + return (_state >> 16) & 0x7FFF; + } + + /// + /// Gets the next random integer value which is greater than zero and less than or equal to + /// the specified maxmimum value. + /// + /// The maximum random integer value to return. + /// A random integer value between zero and the specified maximum value. + public int Next(int max) + { + return (int) (max*NextSingle() + 0.5f); + } + + /// + /// Gets the next random integer between the specified minimum and maximum values. + /// + /// The inclusive minimum value. + /// The inclusive maximum value. + public int Next(int min, int max) + { + return (int) ((max - min)*NextSingle() + 0.5f) + min; + } + + /// + /// Gets the next random integer between the specified range of values. + /// + /// A range representing the inclusive minimum and maximum values. + /// A random integer between the specified minumum and maximum values. + public int Next(Range range) + { + return Next(range.Min, range.Max); + } + + /// + /// Gets the next random single value. + /// + /// A random single value between 0 and 1. + public float NextSingle() + { + return Next()/(float) short.MaxValue; + } + + /// + /// Gets the next random single value which is greater than zero and less than or equal to + /// the specified maxmimum value. + /// + /// The maximum random single value to return. + /// A random single value between zero and the specified maximum value. + public float NextSingle(float max) + { + return max*NextSingle(); + } + + /// + /// Gets the next random single value between the specified minimum and maximum values. + /// + /// The inclusive minimum value. + /// The inclusive maximum value. + /// A random single value between the specified minimum and maximum values. + public float NextSingle(float min, float max) + { + return (max - min)*NextSingle() + min; + } + + /// + /// Gets the next random single value between the specified range of values. + /// + /// A range representing the inclusive minimum and maximum values. + /// A random single value between the specified minimum and maximum values. + public float NextSingle(Range range) + { + return NextSingle(range.Min, range.Max); + } + + /// + /// Gets the next random angle value. + /// + /// A random angle value. + public float NextAngle() + { + return NextSingle(-MathHelper.Pi, MathHelper.Pi); + } + + public void NextUnitVector(out Vector2 vector) + { + var angle = NextAngle(); + vector = new Vector2((float) Math.Cos(angle), (float) Math.Sin(angle)); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/FloatHelper.cs b/Source/MonoGame.Extended/FloatHelper.cs new file mode 100644 index 00000000..a3792e66 --- /dev/null +++ b/Source/MonoGame.Extended/FloatHelper.cs @@ -0,0 +1,15 @@ +using System.Runtime.CompilerServices; + +namespace MonoGame.Extended +{ + public static class FloatHelper + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void Swap(ref float value1, ref float value2) + { + var temp = value1; + value1 = value2; + value2 = temp; + } + } +} diff --git a/Source/MonoGame.Extended/FramesPerSecondCounter.cs b/Source/MonoGame.Extended/FramesPerSecondCounter.cs index 75c57d2c..432f1ac6 100644 --- a/Source/MonoGame.Extended/FramesPerSecondCounter.cs +++ b/Source/MonoGame.Extended/FramesPerSecondCounter.cs @@ -1,51 +1,34 @@ -using System.Collections.Generic; -using System.Linq; +using System; using Microsoft.Xna.Framework; namespace MonoGame.Extended { public class FramesPerSecondCounter : IUpdate { - public FramesPerSecondCounter(int maximumSamples = 100) + private static readonly TimeSpan _oneSecondTimeSpan = new TimeSpan(0, 0, 1); + private int _framesCounter; + private TimeSpan _timer = _oneSecondTimeSpan; + + public FramesPerSecondCounter() { - MaximumSamples = maximumSamples; } - private readonly Queue _sampleBuffer = new Queue(); - - public long TotalFrames { get; private set; } - public float AverageFramesPerSecond { get; private set; } - public float CurrentFramesPerSecond { get; private set; } - public int MaximumSamples { get; } - - public void Reset() - { - TotalFrames = 0; - _sampleBuffer.Clear(); - } - - public void Update(float deltaTime) - { - CurrentFramesPerSecond = 1.0f / deltaTime; - - _sampleBuffer.Enqueue(CurrentFramesPerSecond); - - if (_sampleBuffer.Count > MaximumSamples) - { - _sampleBuffer.Dequeue(); - AverageFramesPerSecond = _sampleBuffer.Average(i => i); - } - else - { - AverageFramesPerSecond = CurrentFramesPerSecond; - } - - TotalFrames++; - } + public int FramesPerSecond { get; private set; } public void Update(GameTime gameTime) { - Update((float)gameTime.ElapsedGameTime.TotalSeconds); + _timer += gameTime.ElapsedGameTime; + if (_timer <= _oneSecondTimeSpan) + return; + + FramesPerSecond = _framesCounter; + _framesCounter = 0; + _timer -= _oneSecondTimeSpan; + } + + public void Draw(GameTime gameTime) + { + _framesCounter++; } } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/FramesPerSecondCounterComponent.cs b/Source/MonoGame.Extended/FramesPerSecondCounterComponent.cs index 2ac70210..ef360722 100644 --- a/Source/MonoGame.Extended/FramesPerSecondCounterComponent.cs +++ b/Source/MonoGame.Extended/FramesPerSecondCounterComponent.cs @@ -1,54 +1,27 @@ -using System.Collections.Generic; -using System.Linq; -using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework; namespace MonoGame.Extended { public class FramesPerSecondCounterComponent : DrawableGameComponent { - FramesPerSecondCounter fpsCounter; + private readonly FramesPerSecondCounter _fpsCounter; - public FramesPerSecondCounterComponent(Game game, int maximumSamples = 100) + public FramesPerSecondCounterComponent(Game game) : base(game) { - fpsCounter = new FramesPerSecondCounter(maximumSamples); + _fpsCounter = new FramesPerSecondCounter(); } - public long TotalFrames - { - get { return fpsCounter.TotalFrames; } - } - - public float AverageFramesPerSecond - { - get { return fpsCounter.AverageFramesPerSecond; } - } - - public float CurrentFramesPerSecond - { - get { return fpsCounter.CurrentFramesPerSecond; } - } - - public int MaximumSamples - { - get { return fpsCounter.MaximumSamples; } - } - - public void Reset() - { - fpsCounter.Reset(); - } + public int FramesPerSecond => _fpsCounter.FramesPerSecond; public override void Update(GameTime gameTime) { - base.Update(gameTime); + _fpsCounter.Update(gameTime); } public override void Draw(GameTime gameTime) { - fpsCounter.Update((float)gameTime.ElapsedGameTime.TotalSeconds); - base.Draw(gameTime); + _fpsCounter.Draw(gameTime); } } -} - +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/GameTimeExtensions.cs b/Source/MonoGame.Extended/GameTimeExtensions.cs index dfc436b4..01c87902 100644 --- a/Source/MonoGame.Extended/GameTimeExtensions.cs +++ b/Source/MonoGame.Extended/GameTimeExtensions.cs @@ -6,7 +6,7 @@ namespace MonoGame.Extended { public static float GetElapsedSeconds(this GameTime gameTime) { - return (float)gameTime.ElapsedGameTime.TotalSeconds; + return (float) gameTime.ElapsedGameTime.TotalSeconds; } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended/IColorable.cs b/Source/MonoGame.Extended/IColorable.cs new file mode 100644 index 00000000..ad3c35c2 --- /dev/null +++ b/Source/MonoGame.Extended/IColorable.cs @@ -0,0 +1,9 @@ +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended +{ + public interface IColorable + { + Color Color { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/IDraw.cs b/Source/MonoGame.Extended/IDraw.cs deleted file mode 100644 index 58a6540a..00000000 --- a/Source/MonoGame.Extended/IDraw.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Microsoft.Xna.Framework; - -namespace MonoGame.Extended -{ - public interface IDraw - { - void Draw(GameTime gameTime); - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/IEquatableByRef.cs b/Source/MonoGame.Extended/IEquatableByRef.cs new file mode 100644 index 00000000..678e5102 --- /dev/null +++ b/Source/MonoGame.Extended/IEquatableByRef.cs @@ -0,0 +1,21 @@ +namespace MonoGame.Extended +{ + /// + /// Defines a generalized method that a value type or class implements to create a type-specific method for + /// determining equality of instances by reference. + /// + /// The type of values or objects to compare. + public interface IEquatableByRef + { + /// + /// Indicates whether the current value or object is equal to another value or object of the same type by + /// reference. + /// + /// + /// true if the current value or object is equal to the parameter; otherwise, + /// false. + /// + /// A value or object to compare with this value or object. + bool Equals(ref T other); + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/IPoolable.cs b/Source/MonoGame.Extended/IPoolable.cs index de2168bd..1877a9f1 100644 --- a/Source/MonoGame.Extended/IPoolable.cs +++ b/Source/MonoGame.Extended/IPoolable.cs @@ -27,4 +27,4 @@ namespace MonoGame.Extended /// void Return(); } -} +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/IRectangular.cs b/Source/MonoGame.Extended/IRectangular.cs new file mode 100644 index 00000000..719d6757 --- /dev/null +++ b/Source/MonoGame.Extended/IRectangular.cs @@ -0,0 +1,8 @@ + +namespace MonoGame.Extended +{ + public interface IRectangular + { + RectangleF BoundingRectangle { get; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/ISizable.cs b/Source/MonoGame.Extended/ISizable.cs new file mode 100644 index 00000000..5b55058e --- /dev/null +++ b/Source/MonoGame.Extended/ISizable.cs @@ -0,0 +1,8 @@ + +namespace MonoGame.Extended +{ + public interface ISizable + { + Size2 Size { get; set; } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/GamePadListenerSettings.cs b/Source/MonoGame.Extended/InputListeners/GamePadListenerSettings.cs deleted file mode 100644 index 33b53892..00000000 --- a/Source/MonoGame.Extended/InputListeners/GamePadListenerSettings.cs +++ /dev/null @@ -1,121 +0,0 @@ -using Microsoft.Xna.Framework; - -namespace MonoGame.Extended.InputListeners -{ - /// - /// This is a class that contains settings to be used to initialise a . - /// - /// - public class GamePadListenerSettings : InputListenerSettings - { - /// - /// This is a class that contains settings to be used to initialise a . - /// Note: There are a number of extra settings that are settable properties. - /// - /// The index of the controller the listener will be tied to. - /// Whether vibration is enabled on the controller. - /// General setting for the strength of the left motor. - /// This motor has a slow, deep, powerful rumble. - /// This setting will modify all future vibrations - /// through this listener. - /// General setting for the strength of the right motor. - /// This motor has a snappy, quick, high-pitched rumble. - /// This setting will modify all future vibrations - /// through this listener. - public GamePadListenerSettings(PlayerIndex playerIndex, bool vibrationEnabled = true, - float vibrationStrengthLeft = 1.0f, float vibrationStrengthRight = 1.0f) - { - PlayerIndex = playerIndex; - VibrationEnabled = vibrationEnabled; - VibrationStrengthLeft = vibrationStrengthLeft; - VibrationStrengthRight = vibrationStrengthRight; - TriggerDownTreshold = 0.15f; - ThumbstickDownTreshold = 0.5f; - RepeatInitialDelay = 500; - RepeatDelay = 50; - } - - /// - /// The index of the controller. - /// - public PlayerIndex PlayerIndex { get; set; } - - /// - /// When a button is held down, the interval in which - /// ButtonRepeated fires. Value in milliseconds. - /// - public int RepeatDelay { get; set; } - - /// - /// The amount of time a button has to be held down - /// in order to fire ButtonRepeated the first time. - /// Value in milliseconds. - /// - public int RepeatInitialDelay { get; set; } - - - /// - /// Whether vibration is enabled for this controller. - /// - public bool VibrationEnabled { get; set; } - - /// - /// General setting for the strength of the left motor. - /// This motor has a slow, deep, powerful rumble. - /// This setting will modify all future vibrations - /// through this listener. - /// - public float VibrationStrengthLeft { get; set; } - - /// - /// General setting for the strength of the right motor. - /// This motor has a snappy, quick, high-pitched rumble. - /// This setting will modify all future vibrations - /// through this listener. - /// - public float VibrationStrengthRight { get; set; } - - /// - /// The treshold of movement that has to be met in order - /// for the listener to fire an event with the trigger's - /// updated position. - /// In essence this defines the event's - /// resolution. - /// At a value of 0 this will fire every time - /// the trigger's position is not 0f. - /// - public float TriggerDeltaTreshold { get; set; } - - /// - /// The treshold of movement that has to be met in order - /// for the listener to fire an event with the thumbstick's - /// updated position. - /// In essence this defines the event's - /// resolution. - /// At a value of 0 this will fire every time - /// the thumbstick's position is not {x:0, y:0}. - /// - public float ThumbStickDeltaTreshold { get; set; } - - /// - /// How deep the triggers have to be depressed in order to - /// register as a ButtonDown event. - /// - public float TriggerDownTreshold { get; set; } - - /// - /// How deep the triggers have to be depressed in order to - /// register as a ButtonDown event. - /// - public float ThumbstickDownTreshold { get; private set; } - - internal override GamePadListener CreateListener() - { - return new GamePadListener(this); - } - - // For internal use only. This limits the user to only having - // one controller. - internal GamePadListenerSettings() : this(PlayerIndex.One) { } - } -} diff --git a/Source/MonoGame.Extended/InputListeners/InputListener.cs b/Source/MonoGame.Extended/InputListeners/InputListener.cs deleted file mode 100644 index 58d23737..00000000 --- a/Source/MonoGame.Extended/InputListeners/InputListener.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Microsoft.Xna.Framework; -using MonoGame.Extended.ViewportAdapters; - -namespace MonoGame.Extended.InputListeners -{ - public abstract class InputListener - { - protected InputListener() - { - } - - internal ViewportAdapter ViewportAdapter { get; set; } - - internal abstract void Update(GameTime gameTime); - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/InputListenerManager.cs b/Source/MonoGame.Extended/InputListeners/InputListenerManager.cs deleted file mode 100644 index d4d7305e..00000000 --- a/Source/MonoGame.Extended/InputListeners/InputListenerManager.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using Microsoft.Xna.Framework; -using MonoGame.Extended.ViewportAdapters; - -namespace MonoGame.Extended.InputListeners -{ - public class InputListenerManager : IUpdate - { - public InputListenerManager() - : this(null) - { - } - - public InputListenerManager(ViewportAdapter viewportAdapter) - { - _viewportAdapter = viewportAdapter; - _listeners = new List(); - } - - private readonly ViewportAdapter _viewportAdapter; - private readonly List _listeners; - - public IEnumerable Listeners => _listeners; - - public T AddListener(InputListenerSettings settings) - where T : InputListener - { - var listener = settings.CreateListener(); - _listeners.Add(listener); - return listener; - } - - public T AddListener() - where T : InputListener - { - var constructors = typeof(T) - .GetTypeInfo().DeclaredConstructors - .Where(c => !c.GetParameters().Any()) - .ToArray(); - - if (!constructors.Any()) - throw new InvalidOperationException($"No parameterless constructor defined for type {typeof (T).Name}"); - - var listener = (T)constructors[0].Invoke(new object[0]); - listener.ViewportAdapter = _viewportAdapter; - _listeners.Add(listener); - return listener; - } - - public void RemoveListener(InputListener listener) - { - _listeners.Remove(listener); - } - - public void Update(GameTime gameTime) - { - foreach (var listener in _listeners) - listener.Update(gameTime); - - GamePadListener.CheckConnections(); - } - } -} diff --git a/Source/MonoGame.Extended/InputListeners/KeyboardEventArgs.cs b/Source/MonoGame.Extended/InputListeners/KeyboardEventArgs.cs deleted file mode 100644 index 552f07f6..00000000 --- a/Source/MonoGame.Extended/InputListeners/KeyboardEventArgs.cs +++ /dev/null @@ -1,119 +0,0 @@ -using System; -using Microsoft.Xna.Framework.Input; - -namespace MonoGame.Extended.InputListeners -{ - public class KeyboardEventArgs : EventArgs - { - internal KeyboardEventArgs(Keys key, KeyboardState keyboardState) - { - Key = key; - - Modifiers = KeyboardModifiers.None; - - if (keyboardState.IsKeyDown(Keys.LeftControl) || keyboardState.IsKeyDown(Keys.RightControl)) - Modifiers |= KeyboardModifiers.Control; - - if (keyboardState.IsKeyDown(Keys.LeftShift) || keyboardState.IsKeyDown(Keys.RightShift)) - Modifiers |= KeyboardModifiers.Shift; - - if (keyboardState.IsKeyDown(Keys.LeftAlt) || keyboardState.IsKeyDown(Keys.RightAlt)) - Modifiers |= KeyboardModifiers.Alt; - } - - public Keys Key { get; } - public KeyboardModifiers Modifiers { get; } - - public char? Character => ToChar(Key, Modifiers); - - private static char? ToChar(Keys key, KeyboardModifiers modifiers = KeyboardModifiers.None) - { - var isShiftDown = ((modifiers & KeyboardModifiers.Shift) == KeyboardModifiers.Shift); - - if (key == Keys.A) { return isShiftDown ? 'A' : 'a'; } - if (key == Keys.B) { return isShiftDown ? 'B' : 'b'; } - if (key == Keys.C) { return isShiftDown ? 'C' : 'c'; } - if (key == Keys.D) { return isShiftDown ? 'D' : 'd'; } - if (key == Keys.E) { return isShiftDown ? 'E' : 'e'; } - if (key == Keys.F) { return isShiftDown ? 'F' : 'f'; } - if (key == Keys.G) { return isShiftDown ? 'G' : 'g'; } - if (key == Keys.H) { return isShiftDown ? 'H' : 'h'; } - if (key == Keys.I) { return isShiftDown ? 'I' : 'i'; } - if (key == Keys.J) { return isShiftDown ? 'J' : 'j'; } - if (key == Keys.K) { return isShiftDown ? 'K' : 'k'; } - if (key == Keys.L) { return isShiftDown ? 'L' : 'l'; } - if (key == Keys.M) { return isShiftDown ? 'M' : 'm'; } - if (key == Keys.N) { return isShiftDown ? 'N' : 'n'; } - if (key == Keys.O) { return isShiftDown ? 'O' : 'o'; } - if (key == Keys.P) { return isShiftDown ? 'P' : 'p'; } - if (key == Keys.Q) { return isShiftDown ? 'Q' : 'q'; } - if (key == Keys.R) { return isShiftDown ? 'R' : 'r'; } - if (key == Keys.S) { return isShiftDown ? 'S' : 's'; } - if (key == Keys.T) { return isShiftDown ? 'T' : 't'; } - if (key == Keys.U) { return isShiftDown ? 'U' : 'u'; } - if (key == Keys.V) { return isShiftDown ? 'V' : 'v'; } - if (key == Keys.W) { return isShiftDown ? 'W' : 'w'; } - if (key == Keys.X) { return isShiftDown ? 'X' : 'x'; } - if (key == Keys.Y) { return isShiftDown ? 'Y' : 'y'; } - if (key == Keys.Z) { return isShiftDown ? 'Z' : 'z'; } - - if ((key == Keys.D0 && !isShiftDown) || key == Keys.NumPad0) { return '0'; } - if ((key == Keys.D1 && !isShiftDown) || key == Keys.NumPad1) { return '1'; } - if ((key == Keys.D2 && !isShiftDown) || key == Keys.NumPad2) { return '2'; } - if ((key == Keys.D3 && !isShiftDown) || key == Keys.NumPad3) { return '3'; } - if ((key == Keys.D4 && !isShiftDown) || key == Keys.NumPad4) { return '4'; } - if ((key == Keys.D5 && !isShiftDown) || key == Keys.NumPad5) { return '5'; } - if ((key == Keys.D6 && !isShiftDown) || key == Keys.NumPad6) { return '6'; } - if ((key == Keys.D7 && !isShiftDown) || key == Keys.NumPad7) { return '7'; } - if ((key == Keys.D8 && !isShiftDown) || key == Keys.NumPad8) { return '8'; } - if ((key == Keys.D9 && !isShiftDown) || key == Keys.NumPad9) { return '9'; } - - if (key == Keys.D0 && isShiftDown) { return ')'; } - if (key == Keys.D1 && isShiftDown) { return '!'; } - if (key == Keys.D2 && isShiftDown) { return '@'; } - if (key == Keys.D3 && isShiftDown) { return '#'; } - if (key == Keys.D4 && isShiftDown) { return '$'; } - if (key == Keys.D5 && isShiftDown) { return '%'; } - if (key == Keys.D6 && isShiftDown) { return '^'; } - if (key == Keys.D7 && isShiftDown) { return '&'; } - if (key == Keys.D8 && isShiftDown) { return '*'; } - if (key == Keys.D9 && isShiftDown) { return '('; } - - if (key == Keys.Space) { return ' '; } - if (key == Keys.Tab) { return '\t'; } - if (key == Keys.Enter) { return (char)13; } - if (key == Keys.Back) { return (char)8; } - - if (key == Keys.Add) { return '+'; } - if (key == Keys.Decimal) { return '.'; } - if (key == Keys.Divide) { return '/'; } - if (key == Keys.Multiply) { return '*'; } - if (key == Keys.OemBackslash) { return '\\'; } - if (key == Keys.OemComma && !isShiftDown) { return ','; } - if (key == Keys.OemComma && isShiftDown) { return '<'; } - if (key == Keys.OemOpenBrackets && !isShiftDown) { return '['; } - if (key == Keys.OemOpenBrackets && isShiftDown) { return '{'; } - if (key == Keys.OemCloseBrackets && !isShiftDown) { return ']'; } - if (key == Keys.OemCloseBrackets && isShiftDown) { return '}'; } - if (key == Keys.OemPeriod && !isShiftDown) { return '.'; } - if (key == Keys.OemPeriod && isShiftDown) { return '>'; } - if (key == Keys.OemPipe && !isShiftDown) { return '\\'; } - if (key == Keys.OemPipe && isShiftDown) { return '|'; } - if (key == Keys.OemPlus && !isShiftDown) { return '='; } - if (key == Keys.OemPlus && isShiftDown) { return '+'; } - if (key == Keys.OemMinus && !isShiftDown) { return '-'; } - if (key == Keys.OemMinus && isShiftDown) { return '_'; } - if (key == Keys.OemQuestion && !isShiftDown) { return '/'; } - if (key == Keys.OemQuestion && isShiftDown) { return '?'; } - if (key == Keys.OemQuotes && !isShiftDown) { return '\''; } - if (key == Keys.OemQuotes && isShiftDown) { return '"'; } - if (key == Keys.OemSemicolon && !isShiftDown) { return ';'; } - if (key == Keys.OemSemicolon && isShiftDown) { return ':'; } - if (key == Keys.OemTilde && !isShiftDown) { return '`'; } - if (key == Keys.OemTilde && isShiftDown) { return '~'; } - if (key == Keys.Subtract) { return '-'; } - - return null; - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/TouchEventArgs.cs b/Source/MonoGame.Extended/InputListeners/TouchEventArgs.cs deleted file mode 100644 index 3bc12d0e..00000000 --- a/Source/MonoGame.Extended/InputListeners/TouchEventArgs.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using Microsoft.Xna.Framework.Input.Touch; - -namespace MonoGame.Extended.InputListeners -{ - public class TouchEventArgs : EventArgs - { - internal TouchEventArgs(TouchLocation location) - { - Location = location; - } - - public TouchLocation Location { get; } - - public override bool Equals(object other) - { - var args = other as TouchEventArgs; - - if (args == null) - return false; - - return ReferenceEquals(this, args) || Location.Id.Equals(args.Location.Id); - } - - public override int GetHashCode() - { - return Location.Id.GetHashCode(); - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/InputListeners/TouchListener.cs b/Source/MonoGame.Extended/InputListeners/TouchListener.cs deleted file mode 100644 index c0c0e18d..00000000 --- a/Source/MonoGame.Extended/InputListeners/TouchListener.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Input.Touch; - -namespace MonoGame.Extended.InputListeners -{ - public class TouchListener : InputListener - { - internal TouchListener() - : this(new TouchListenerSettings()) - { - } - - // ReSharper disable once UnusedParameter.Local - internal TouchListener(TouchListenerSettings settings) - { - } - - public event EventHandler TouchStarted; - public event EventHandler TouchEnded; - public event EventHandler TouchMoved; - public event EventHandler TouchCancelled; - - internal override void Update(GameTime gameTime) - { - var touchCollection = TouchPanel.GetState(); - - foreach (var touchLocation in touchCollection) - { - switch (touchLocation.State) - { - case TouchLocationState.Pressed: - TouchStarted.Raise(this, new TouchEventArgs(touchLocation)); - break; - case TouchLocationState.Moved: - TouchMoved.Raise(this, new TouchEventArgs(touchLocation)); - break; - case TouchLocationState.Released: - TouchEnded.Raise(this, new TouchEventArgs(touchLocation)); - break; - case TouchLocationState.Invalid: - TouchCancelled.Raise(this, new TouchEventArgs(touchLocation)); - break; - } - } - } - } -} diff --git a/Source/MonoGame.Extended/InputListeners/TouchListenerSettings.cs b/Source/MonoGame.Extended/InputListeners/TouchListenerSettings.cs deleted file mode 100644 index b5af1ed5..00000000 --- a/Source/MonoGame.Extended/InputListeners/TouchListenerSettings.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace MonoGame.Extended.InputListeners -{ - public class TouchListenerSettings : InputListenerSettings - { - public TouchListenerSettings() - { - } - - internal override TouchListener CreateListener() - { - return new TouchListener(); - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Maps/Tiled/CollisionWorldExtensions.cs b/Source/MonoGame.Extended/Maps/Tiled/CollisionWorldExtensions.cs deleted file mode 100644 index d2dbdc0a..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/CollisionWorldExtensions.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Linq; -using MonoGame.Extended.Collisions; - -namespace MonoGame.Extended.Maps.Tiled -{ - public static class CollisionWorldExtensions - { - public static CollisionGrid CreateGrid(this CollisionWorld world, TiledTileLayer tileLayer) - { - var data = tileLayer.Tiles - .Select(t => t.Id) - .ToArray(); - - return world.CreateGrid(data, tileLayer.Width, tileLayer.Height, tileLayer.TileWidth, tileLayer.TileHeight); - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Maps/Tiled/SpriteBatchExtensions.cs b/Source/MonoGame.Extended/Maps/Tiled/SpriteBatchExtensions.cs deleted file mode 100644 index d04213af..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/SpriteBatchExtensions.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Graphics; -using MonoGame.Extended.Shapes; - -namespace MonoGame.Extended.Maps.Tiled -{ - public static class SpriteBatchExtensions - { - public static void Draw(this SpriteBatch spriteBatch, TiledMap tiledMap, Rectangle? visibleRectangle = null) - { - tiledMap.Draw(spriteBatch, visibleRectangle); - } - - public static void Draw(this SpriteBatch spriteBatch, TiledMap tiledMap, Camera2D camera) - { - tiledMap.Draw(spriteBatch, camera); - } - - public static void Draw(this SpriteBatch spriteBatch, TiledLayer layer, Rectangle? visibleRectangle = null) - { - layer.Draw(spriteBatch, visibleRectangle); - } - - public static void Draw(this SpriteBatch spriteBatch, TiledLayer layer, Camera2D camera) - { - layer.Draw(spriteBatch, camera.GetBoundingRectangle().ToRectangle()); - } - } -} diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledImageLayer.cs b/Source/MonoGame.Extended/Maps/Tiled/TiledImageLayer.cs deleted file mode 100644 index b34058ff..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledImageLayer.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Graphics; - -namespace MonoGame.Extended.Maps.Tiled -{ - public class TiledImageLayer : TiledLayer, IMovable - { - private readonly Texture2D _texture; - - public TiledImageLayer(string name, Texture2D texture, Vector2 position) - : base(name) - { - Position = position; - _texture = texture; - } - - public override void Dispose() - { - } - - public Vector2 Position { get; set; } - - public override void Draw(SpriteBatch spriteBatch, Rectangle? visibleRectangle = null, Color? backgroundColor = null) - { - if (!IsVisible) - return; - - spriteBatch.Draw(_texture, Position, Color.White * Opacity); - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledLayer.cs b/Source/MonoGame.Extended/Maps/Tiled/TiledLayer.cs deleted file mode 100644 index 7fa4a36a..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledLayer.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Graphics; - -namespace MonoGame.Extended.Maps.Tiled -{ - public abstract class TiledLayer : IDisposable - { - protected TiledLayer(string name) - { - Name = name; - Properties = new TiledProperties(); - IsVisible = true; - Opacity = 1.0f; - } - - public abstract void Dispose(); - - public string Name { get; } - public TiledProperties Properties { get; } - public bool IsVisible { get; set; } - public float Opacity { get; set; } - - public abstract void Draw(SpriteBatch spriteBatch, Rectangle? visibleRectangle = null, Color? backgroundColor = null); - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledMap.cs b/Source/MonoGame.Extended/Maps/Tiled/TiledMap.cs deleted file mode 100644 index 0a01289a..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledMap.cs +++ /dev/null @@ -1,126 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Graphics; -using MonoGame.Extended.Shapes; -using MonoGame.Extended.TextureAtlases; - -namespace MonoGame.Extended.Maps.Tiled -{ - public class TiledMap : IDisposable - { - public TiledMap(GraphicsDevice graphicsDevice, int width, int height, int tileWidth, int tileHeight, - TiledMapOrientation orientation = TiledMapOrientation.Orthogonal) - { - _graphicsDevice = graphicsDevice; - _layers = new List(); - _objectGroups = new List(); - _tilesets = new List(); - - Width = width; - Height = height; - TileWidth = tileWidth; - TileHeight = tileHeight; - Properties = new TiledProperties(); - Orientation = orientation; - } - - public void Dispose() - { - foreach (var tiledLayer in _layers) - tiledLayer.Dispose(); - } - - private readonly List _tilesets; - private readonly GraphicsDevice _graphicsDevice; - private readonly List _layers; - private readonly List _objectGroups; - - public int Width { get; } - public int Height { get; } - public int TileWidth { get; } - public int TileHeight { get; } - public Color? BackgroundColor { get; set; } - public TiledRenderOrder RenderOrder { get; set; } - public TiledProperties Properties { get; private set; } - public TiledMapOrientation Orientation { get; private set; } - - public List ObjectGroups => _objectGroups; - public IEnumerable Layers => _layers; - public IEnumerable ImageLayers => _layers.OfType(); - public IEnumerable TileLayers => _layers.OfType(); - public int WidthInPixels => Width * TileWidth; - public int HeightInPixels => Height * TileHeight; - - public TiledTileset CreateTileset(Texture2D texture, int firstId, int tileWidth, int tileHeight, int spacing = 2, int margin = 2) - { - var tileset = new TiledTileset(texture, firstId, tileWidth, tileHeight, spacing, margin); - _tilesets.Add(tileset); - return tileset; - } - - public TiledTileLayer CreateTileLayer(string name, int width, int height, int[] data) - { - var layer = new TiledTileLayer(this, _graphicsDevice, name, width, height, data); - _layers.Add(layer); - return layer; - } - - public TiledImageLayer CreateImageLayer(string name, Texture2D texture, Vector2 position) - { - var layer = new TiledImageLayer(name, texture, position); - _layers.Add(layer); - return layer; - } - - public TiledObjectGroup CreateObjectGroup(string name, TiledObject[] objects, bool isVisible) - { - var objectGroup = new TiledObjectGroup(name, objects) {IsVisible = isVisible}; - _objectGroups.Add(objectGroup); - return objectGroup; - } - - public TiledLayer GetLayer(string name) - { - return _layers.FirstOrDefault(i => i.Name == name); - } - - public T GetLayer(string name) - where T : TiledLayer - { - return (T) GetLayer(name); - } - - public TiledObjectGroup GetObjectGroup(string name) - { - return _objectGroups.FirstOrDefault(i => i.Name == name); - } - - - public void Draw(SpriteBatch spriteBatch, Rectangle? visibleRectangle = null) - { - foreach (var layer in _layers.Where(i => i.IsVisible)) - layer.Draw(spriteBatch, visibleRectangle); - } - - public void Draw(SpriteBatch spriteBatch, Camera2D camera) - { - var visibleRectangle = camera.GetBoundingRectangle().ToRectangle(); - Draw(spriteBatch, visibleRectangle); - } - - public TextureRegion2D GetTileRegion(int id) - { - if (id == 0) - return null; - - var tileset = _tilesets.LastOrDefault(i => i.FirstId <= id); - - if (tileset == null) - throw new InvalidOperationException($"No tileset found for id {id}"); - - return tileset.GetTileRegion(id); - } - } -} diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledMapOrientation.cs b/Source/MonoGame.Extended/Maps/Tiled/TiledMapOrientation.cs deleted file mode 100644 index d2b3b037..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledMapOrientation.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace MonoGame.Extended.Maps.Tiled -{ - public enum TiledMapOrientation - { - Orthogonal = 1, - Isometric = 2, - Staggered = 3 - } -} diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledMapReader.cs b/Source/MonoGame.Extended/Maps/Tiled/TiledMapReader.cs deleted file mode 100644 index ebb80108..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledMapReader.cs +++ /dev/null @@ -1,159 +0,0 @@ -using System; -using Microsoft.Xna.Framework.Content; -using Microsoft.Xna.Framework.Graphics; -using MonoGame.Extended.Content; - -namespace MonoGame.Extended.Maps.Tiled -{ - public class TiledMapReader : ContentTypeReader - { - protected override TiledMap Read(ContentReader reader, TiledMap existingInstance) - { - var backgroundColor = reader.ReadColor(); - var renderOrder = (TiledRenderOrder) Enum.Parse(typeof (TiledRenderOrder), reader.ReadString(), true); - var tiledMap = new TiledMap( - graphicsDevice: reader.ContentManager.GetGraphicsDevice(), - width: reader.ReadInt32(), - height: reader.ReadInt32(), - tileWidth: reader.ReadInt32(), - tileHeight: reader.ReadInt32(), - orientation: (TiledMapOrientation)reader.ReadInt32()) - { - BackgroundColor = backgroundColor, - RenderOrder = renderOrder - }; - - ReadCustomProperties(reader, tiledMap.Properties); - - var tilesetCount = reader.ReadInt32(); - - for (var i = 0; i < tilesetCount; i++) - { - var textureAssetName = reader.GetRelativeAssetPath(reader.ReadString()); - var texture = reader.ContentManager.Load(textureAssetName); - var tileset = tiledMap.CreateTileset( - texture: texture, - firstId: reader.ReadInt32(), - tileWidth: reader.ReadInt32(), - tileHeight: reader.ReadInt32(), - spacing: reader.ReadInt32(), - margin: reader.ReadInt32()); - ReadCustomProperties(reader, tileset.Properties); - } - - var layerCount = reader.ReadInt32(); - - for (var i = 0; i < layerCount; i++) - { - var layer = ReadLayer(reader, tiledMap); - ReadCustomProperties(reader, layer.Properties); - } - - var objectGroupsCount = reader.ReadInt32(); - - for (var i = 0; i < objectGroupsCount; i++) - { - var objectGroup = ReadObjectGroup(reader, tiledMap); - ReadCustomProperties(reader, objectGroup.Properties); - } - - return tiledMap; - } - - private static TiledObjectGroup ReadObjectGroup(ContentReader reader, TiledMap tiledMap) - { - var groupName = reader.ReadString(); - var visible = reader.ReadBoolean(); - var opacity = reader.ReadSingle(); - var count = reader.ReadInt32(); - var objects = new TiledObject[count]; - - for (var i = 0; i < count; i++) - { - var objectType = (TiledObjectType) reader.ReadInt32(); - var id = reader.ReadInt32(); - var gid = reader.ReadInt32(); - var x = reader.ReadSingle(); - var y = reader.ReadSingle(); - var width = reader.ReadSingle(); - var height = reader.ReadSingle(); - var rotation = reader.ReadSingle(); - var name = reader.ReadString(); - var type = reader.ReadString(); - var isVisible = reader.ReadBoolean(); - - objects[i] = new TiledObject(objectType, id, gid >= 0 ? gid : (int?) null, x, y, width, height) - { - IsVisible = isVisible, - Opacity = opacity, - Rotation = rotation, - Name = name, - Type = type - }; - - if (objectType == TiledObjectType.Polyline || objectType == TiledObjectType.Polygon) - { - var pointsCount = reader.ReadInt32(); - - for (var j = 0; j < pointsCount; j++) - objects[i].Points.Add(reader.ReadVector2()); - } - - ReadCustomProperties(reader, objects[i].Properties); - } - - return tiledMap.CreateObjectGroup(groupName, objects, visible); - } - - private static void ReadCustomProperties(ContentReader reader, TiledProperties properties) - { - var count = reader.ReadInt32(); - - for (var i = 0; i < count; i++) - properties.Add(reader.ReadString(), reader.ReadString()); - } - - private static TiledLayer ReadLayer(ContentReader reader, TiledMap tiledMap) - { - var layerName = reader.ReadString(); - var visible = reader.ReadBoolean(); - var opacity = reader.ReadSingle(); - var layerType = reader.ReadString(); - var layer = ReadLayerTypeProperties(reader, tiledMap, layerName, layerType); - layer.IsVisible = visible; - layer.Opacity = opacity; - return layer; - } - - private static TiledLayer ReadLayerTypeProperties(ContentReader reader, TiledMap tiledMap, string layerName, string layerType) - { - if (layerType == "TileLayer") - return ReadTileLayer(reader, tiledMap, layerName); - - if (layerType == "ImageLayer") - return ReadImageLayer(reader, tiledMap, layerName); - - throw new NotSupportedException($"Layer type {layerType} is not supported"); - } - - private static TiledTileLayer ReadTileLayer(ContentReader reader, TiledMap tileMap, string layerName) - { - var tileDataCount = reader.ReadInt32(); - var tileData = new int[tileDataCount]; - - for (var d = 0; d < tileDataCount; d++) - tileData[d] = reader.ReadInt32(); - - return tileMap.CreateTileLayer(name: layerName, width: reader.ReadInt32(), height: reader.ReadInt32(), data: tileData); - } - - private static TiledImageLayer ReadImageLayer(ContentReader reader, TiledMap tileMap, string layerName) - { - var assetName = reader.GetRelativeAssetPath(reader.ReadString()); - var texture = reader.ContentManager.Load(assetName); - var position = reader.ReadVector2(); - - return tileMap.CreateImageLayer(layerName, texture, position); - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledObject.cs b/Source/MonoGame.Extended/Maps/Tiled/TiledObject.cs deleted file mode 100644 index 0eaecbd8..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledObject.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Collections.Generic; -using Microsoft.Xna.Framework; - -namespace MonoGame.Extended.Maps.Tiled -{ - public class TiledObject - { - public TiledObject(TiledObjectType objectType, int id, int? gid, float x, float y, float width, float height) - { - ObjectType = objectType; - Id = id; - Gid = gid; - X = x; - Y = y; - Width = width; - Height = height; - Points = new List(); - Properties = new TiledProperties(); - } - - public int Id { get; } - public int? Gid { get; } - public TiledObjectType ObjectType { get; } - public string Name { get; set; } - public float X { get; } - public float Y { get; } - public float Width { get; } - public float Height { get; } - public TiledProperties Properties { get; } - public List Points { get; } - public bool IsVisible { get; set; } - public float Opacity { get; set; } - public float Rotation { get; set; } - public string Type { get; set; } - - - public override string ToString() - { - return $"{Id}"; - } - } - - public enum TiledObjectType - { - Rectangle = 1, - Ellipse = 2, - Polygon = 3, - Polyline = 4, - Tile = 5 - } -} diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledObjectGroup.cs b/Source/MonoGame.Extended/Maps/Tiled/TiledObjectGroup.cs deleted file mode 100644 index 0f98d9b1..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledObjectGroup.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace MonoGame.Extended.Maps.Tiled -{ - public class TiledObjectGroup - { - public TiledObjectGroup(string name, TiledObject[] objects) - { - Name = name; - Objects = objects; - Properties = new TiledProperties(); - } - - public string Name { get; } - public TiledObject[] Objects { get; } - public TiledProperties Properties { get; } - public bool IsVisible { get; set; } - } -} diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledProperties.cs b/Source/MonoGame.Extended/Maps/Tiled/TiledProperties.cs deleted file mode 100644 index 3ecd3ddd..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledProperties.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.Collections.Generic; - -namespace MonoGame.Extended.Maps.Tiled -{ - public class TiledProperties : Dictionary - { - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledTile.cs b/Source/MonoGame.Extended/Maps/Tiled/TiledTile.cs deleted file mode 100644 index 1f0d88ab..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledTile.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace MonoGame.Extended.Maps.Tiled -{ - public class TiledTile - { - public TiledTile (int id, int x, int y) - { - Id = id; - X = x; - Y = y; - } - - public int Id { get; } - public int X { get; private set; } - public int Y { get; private set; } - - public override string ToString() - { - return $"{Id}"; - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledTileLayer.cs b/Source/MonoGame.Extended/Maps/Tiled/TiledTileLayer.cs deleted file mode 100644 index fda875b1..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledTileLayer.cs +++ /dev/null @@ -1,192 +0,0 @@ -using System; -using System.Collections.Generic; -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Graphics; -using MonoGame.Extended.TextureAtlases; - -namespace MonoGame.Extended.Maps.Tiled -{ - public class TiledTileLayer : TiledLayer - { - public TiledTileLayer(TiledMap map, GraphicsDevice graphicsDevice, string name, int width, int height, int[] data) - : base(name) - { - Width = width; - Height = height; - - _renderTargetSpriteBatch = new SpriteBatch(graphicsDevice); - _map = map; - _tiles = CreateTiles(data); - } - - public override void Dispose() - { - _renderTargetSpriteBatch.Dispose(); - } - - public int Width { get; } - public int Height { get; } - - private readonly TiledMap _map; - private readonly TiledTile[] _tiles; - private readonly SpriteBatch _renderTargetSpriteBatch; - private RenderTarget2D _renderTarget; - - public IEnumerable Tiles => _tiles; - public int TileWidth => _map.TileWidth; - public int TileHeight => _map.TileHeight; - - private TiledTile[] CreateTiles(int[] data) - { - var tiles = new TiledTile[data.Length]; - var index = 0; - - for (var y = 0; y < Height; y++) - { - for (var x = 0; x < Width; x++) - { - tiles[x + y * Width] = new TiledTile(data[index], x, y); - index++; - } - } - - return tiles; - } - - public override void Draw(SpriteBatch spriteBatch, Rectangle? visibleRectangle = null, Color? backgroundColor = null) - { - if(!IsVisible) - return; - - if (_renderTarget == null) - { - // create and render the entire map to a single render target. - // this gives the best frame rate performance at the cost of memory. - // ideally, we'd like to have a couple of different draw strategies for different situations. - _renderTarget = new RenderTarget2D(_renderTargetSpriteBatch.GraphicsDevice, _map.WidthInPixels, _map.WidthInPixels); - - using (_renderTarget.BeginDraw(_renderTargetSpriteBatch.GraphicsDevice, backgroundColor ?? Color.Transparent)) - { - //var vr = visibleRectangle ?? new Rectangle(0, 0, _map.WidthInPixels, _map.HeightInPixels); - var vr = new Rectangle(0, 0, _map.WidthInPixels, _map.HeightInPixels); - var renderOrderFunction = GetRenderOrderFunction(); - var tileLocationFunction = GetTileLocationFunction(); - var firstCol = vr.Left < 0 ? 0 : (int) Math.Floor(vr.Left/(float) _map.TileWidth); - var firstRow = vr.Top < 0 ? 0 : (int) Math.Floor(vr.Top/(float) _map.TileHeight); - - // +3 to cover any gaps - var columns = Math.Min(_map.Width, vr.Width/_map.TileWidth) + 3; - var rows = Math.Min(_map.Height, vr.Height/_map.TileHeight) + 3; - - _renderTargetSpriteBatch.Begin(blendState: BlendState.AlphaBlend, samplerState: SamplerState.PointClamp); - - foreach (var tile in renderOrderFunction(firstCol, firstRow, firstCol + columns, firstRow + rows)) - { - var region = tile != null ? _map.GetTileRegion(tile.Id) : null; - - if (region != null) - { - var point = tileLocationFunction(tile); - var destinationRectangle = new Rectangle(point.X, point.Y, region.Width, region.Height); - _renderTargetSpriteBatch.Draw(region, destinationRectangle, Color.White*Opacity); - } - } - - _renderTargetSpriteBatch.End(); - } - } - - spriteBatch.Draw(_renderTarget, Vector2.Zero, Color.White); - } - - private Func GetTileLocationFunction() - { - switch (_map.Orientation) - { - case TiledMapOrientation.Orthogonal: - return GetOrthogonalLocation; - case TiledMapOrientation.Isometric: - return GetIsometricLocation; - case TiledMapOrientation.Staggered: - throw new NotImplementedException(@"Staggered maps are not yet implemented"); - default: - throw new NotSupportedException($"{_map.Orientation} is not supported"); - } - } - - private Point GetOrthogonalLocation(TiledTile tile) - { - var tx = tile.X * _map.TileWidth; - var ty = tile.Y * _map.TileHeight; - return new Point(tx, ty); - } - - private Point GetIsometricLocation(TiledTile tile) - { - var halfTileWidth = _map.TileWidth / 2; - var halfTileHeight = _map.TileHeight / 2; - var tx = tile.X * halfTileWidth - tile.Y * halfTileWidth + _map.Width * halfTileWidth; - var ty = tile.Y * halfTileHeight + tile.X * halfTileHeight - _map.TileWidth + _map.TileHeight; - return new Point(tx, ty); - } - - public TiledTile GetTile(int x, int y) - { - var index = x + y * Width; - return index < 0 || index >= _tiles.Length ? null : _tiles[index]; - } - - private Func> GetRenderOrderFunction() - { - switch (_map.RenderOrder) - { - case TiledRenderOrder.LeftDown: - return GetTilesLeftDown; - case TiledRenderOrder.LeftUp: - return GetTilesLeftUp; - case TiledRenderOrder.RightDown: - return GetTilesRightDown; - case TiledRenderOrder.RightUp: - return GetTilesRightUp; - default: - throw new NotSupportedException($"{_map.RenderOrder} is not supported"); - } - } - - private IEnumerable GetTilesRightDown(int left, int top, int right, int bottom) - { - for (var y = top; y < bottom; y++) - { - for (var x = left; x < right; x++) - yield return GetTile(x, y); - } - } - - private IEnumerable GetTilesRightUp(int left, int top, int right, int bottom) - { - for (var y = bottom - 1; y >= top; y--) - { - for (var x = left; x < right; x++) - yield return GetTile(x, y); - } - } - - private IEnumerable GetTilesLeftDown(int left, int top, int right, int bottom) - { - for (var y = top; y < bottom; y++) - { - for (var x = right - 1; x >= left; x--) - yield return GetTile(x, y); - } - } - - private IEnumerable GetTilesLeftUp(int left, int top, int right, int bottom) - { - for (var y = bottom - 1; y >= top; y--) - { - for (var x = right - 1; x >= left; x--) - yield return GetTile(x, y); - } - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Maps/Tiled/TiledTileSet.cs b/Source/MonoGame.Extended/Maps/Tiled/TiledTileSet.cs deleted file mode 100644 index b741874e..00000000 --- a/Source/MonoGame.Extended/Maps/Tiled/TiledTileSet.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections.Generic; -using Microsoft.Xna.Framework.Graphics; -using MonoGame.Extended.TextureAtlases; - -namespace MonoGame.Extended.Maps.Tiled -{ - public class TiledTileset - { - public TiledTileset(Texture2D texture, int firstId, int tileWidth, int tileHeight, int spacing = 2, int margin = 2) - { - //if (texture.Width % tileWidth != 0 || texture.Height % tileHeight != 0) - // throw new InvalidOperationException("The tileset texture must be an exact multiple of the tile size"); - - Texture = texture; - FirstId = firstId; - TileWidth = tileWidth; - TileHeight = tileHeight; - Spacing = spacing; - Margin = margin; - Properties = new TiledProperties(); - - var id = FirstId; - _regions = new Dictionary(); - - for (var y = Margin; y < texture.Height - Margin; y += TileHeight + Spacing) - { - for (var x = Margin; x < texture.Width - Margin; x += TileWidth + Spacing) - { - _regions.Add(id, new TextureRegion2D(Texture, x, y, TileWidth, TileHeight)); - id++; - } - } - } - - private readonly Dictionary _regions; - - public Texture2D Texture { get; } - public int FirstId { get; } - public int TileWidth { get; } - public int TileHeight { get; } - public int Spacing { get; } - public int Margin { get; } - public TiledProperties Properties { get; private set; } - - public TextureRegion2D GetTileRegion(int id) - { - return id == 0 ? null : _regions[id]; - } - } -} \ No newline at end of file diff --git a/Source/MonoGame.Extended/Matrix2D.cs b/Source/MonoGame.Extended/Matrix2D.cs new file mode 100644 index 00000000..bea8c35d --- /dev/null +++ b/Source/MonoGame.Extended/Matrix2D.cs @@ -0,0 +1,1026 @@ +using System; +using System.Diagnostics; +using System.Runtime.CompilerServices; +using Microsoft.Xna.Framework; + +// ReSharper disable CompareOfFloatsByEqualityOperator + +namespace MonoGame.Extended +{ + // https://en.wikipedia.org/wiki/Matrix_(mathematics) + // "Immersive Linear Algebra"; Jacob Ström, Kalle Åström & Tomas Akenine-Möller; 2015-2016. Chapter 6: The Matrix. http://immersivemath.com/ila/ch06_matrices/ch06.html + // "Real-Time Collision Detection"; Christer Ericson; 2005. Chapter 3.1: A Math and Geometry Primer - Matrices. pg 23-34 + + // Original code was from Matrix2D.cs in the Nez Library: https://github.com/prime31/Nez/ + + /// + /// Defines a 3x3 matrix using floating point numbers which can store two dimensional translation, scale and rotation + /// information in a right-handed coordinate system. + /// + /// + /// + /// Matrices use a row vector layout in the XNA / MonoGame Framework but, in general, matrices can be either have + /// a row vector or column vector layout. Row vector matrices view vectors as a row from left to right, while + /// column vector matrices view vectors as a column from top to bottom. For example, the + /// corresponds to the fields and . + /// + /// + /// The fields M13 and M23 always have a value of 0.0f, and thus are removed from the + /// to reduce its memory footprint. Same is true for the field M33, except it always has a + /// value of 1.0f. + /// + /// + [DebuggerDisplay("{DebugDisplayString,nq}")] + public struct Matrix2D : IEquatable, IEquatableByRef + { + public float M11; // x scale, also used for rotation + public float M12; // used for rotation + + public float M21; // used for rotation + public float M22; // y scale, also used for rotation + + public float M31; // x translation + public float M32; // y translation + + /// + /// Gets the identity matrix. + /// + /// + /// The identity matrix. + /// + public static Matrix2D Identity { get; } = new Matrix2D(1f, 0f, 0f, 1f, 0f, 0f); + + /// + /// Gets the translation. + /// + /// + /// The translation. + /// + /// The is equal to the vector (M31, M32). + public Vector2 Translation => new Vector2(M31, M32); + + /// + /// Gets the rotation angle in radians. + /// + /// + /// The rotation angle in radians. + /// + /// + /// The is equal to Atan2(M21, M11). + /// + public float Rotation => (float)Math.Atan2(M21, M11); + + /// + /// Gets the scale. + /// + /// + /// The scale. + /// + /// + /// The is equal to the vector + /// (Sqrt(M11 * M11 + M21 * M21), Sqrt(M12 * M12 + M22 * M22)). + /// + public Vector2 Scale + { + get + { + var scaleX = (float)Math.Sqrt(M11 * M11 + M21 * M21); + var scaleY = (float)Math.Sqrt(M12 * M12 + M22 * M22); + return new Vector2(scaleX, scaleY); + } + } + + /// + /// Initializes a new instance of the struct. + /// + /// The value to initialize to. + /// The value to initialize to. + /// The value to initialize to. + /// The value to initialize to. + /// The value to initialize to. + /// The value to initialize to. + /// + /// + /// The fields M13 and M23 always have a value of 0.0f, and thus are removed from the + /// to reduce its memory footprint. Same is true for the field M33, except it always has a + /// value of 1.0f. + /// + /// + public Matrix2D(float m11, float m12, float m21, float m22, float m31, float m32) + { + M11 = m11; + M12 = m12; + + M21 = m21; + M22 = m22; + + M31 = m31; + M32 = m32; + } + + /// + /// Transforms the specified by this . + /// + /// The vector. + /// The resulting . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public Vector2 Transform(Vector2 vector) + { + Vector2 result; + Transform(vector, out result); + return result; + } + + /// + /// Transforms the specified by this . + /// + /// The vector. + /// The resulting . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Transform(Vector2 vector, out Vector2 result) + { + result.X = vector.X * M11 + vector.Y * M21 + M31; + result.Y = vector.X * M12 + vector.Y * M22 + M32; + } + + /// + /// Transforms the specified by this . + /// + /// The x value of the vector. + /// The y value of the vector. + /// The resulting . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Transform(float x, float y, out Vector2 result) + { + result.X = x * M11 + y * M21 + M31; + result.Y = x * M12 + y * M22 + M32; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Transform(float x, float y, ref Vector3 result) + { + result.X = x * M11 + y * M21 + M31; + result.Y = x * M12 + y * M22 + M32; + } + + /// + /// Initializes a new instance of the struct that can be used to translate, rotate, and scale a set of vertices in two dimensions. + /// + /// The amounts to translate by on the x and y axes. + /// The amount, in radians, in which to rotate around the z-axis. + /// The amount to scale by on the x and y axes. + /// The point which to rotate and scale around. + /// The resulting + public static void CreateFrom(Vector2 position, float rotation, Vector2? scale, Vector2? origin, + out Matrix2D transformMatrix) + { + transformMatrix = Identity; + + if (origin.HasValue) + { + transformMatrix.M31 = -origin.Value.X; + transformMatrix.M32 = -origin.Value.Y; + } + + if (scale.HasValue) + { + var scaleMatrix = CreateScale(scale.Value); + Multiply(ref transformMatrix, ref scaleMatrix, out transformMatrix); + } + + // ReSharper disable once CompareOfFloatsByEqualityOperator + if (rotation != 0f) + { + var rotationMatrix = CreateRotationZ(-rotation); + Multiply(ref transformMatrix, ref rotationMatrix, out transformMatrix); + } + + var translationMatrix = CreateTranslation(position); + Multiply(ref transformMatrix, ref translationMatrix, out transformMatrix); + } + + /// + /// Initializes a new instance of the struct that can be used to translate, rotate, and scale a set of vertices in two dimensions. + /// + /// The amounts to translate by on the x and y axes. + /// The amount, in radians, in which to rotate around the z-axis. + /// The amount to scale by on the x and y axes. + /// The point which to rotate and scale around. + /// The resulting . + public static Matrix2D CreateFrom(Vector2 position, float rotation, Vector2? scale = null, Vector2? origin = null) + { + var transformMatrix = Identity; + + if (origin.HasValue) + { + transformMatrix.M31 = -origin.Value.X; + transformMatrix.M32 = -origin.Value.Y; + } + + if (scale.HasValue) + { + var scaleMatrix = CreateScale(scale.Value); + transformMatrix = Multiply(transformMatrix, scaleMatrix); + } + + // ReSharper disable once CompareOfFloatsByEqualityOperator + if (rotation != 0f) + { + var rotationMatrix = CreateRotationZ(-rotation); + transformMatrix = Multiply(transformMatrix, rotationMatrix); + } + + var translationMatrix = CreateTranslation(position); + transformMatrix = Multiply(transformMatrix, translationMatrix); + + return transformMatrix; + } + + /// + /// Initializes a new instance of the struct that can be used to rotate a set of vertices + /// around the z-axis. + /// + /// The amount, in radians, in which to rotate around the z-axis. + /// The resulting . + public static Matrix2D CreateRotationZ(float radians) + { + Matrix2D result; + CreateRotationZ(radians, out result); + return result; + } + + /// + /// Calculates the struct that can be used to rotate a set of vertices around the z-axis. + /// + /// The amount, in radians, in which to rotate around the z-axis. + /// The resulting . + public static void CreateRotationZ(float radians, out Matrix2D result) + { + var val1 = (float)Math.Cos(radians); + var val2 = (float)Math.Sin(radians); + + result.M11 = val1; + result.M12 = val2; + + result.M21 = -val2; + result.M22 = val1; + + result.M31 = 0; + result.M32 = 0; + } + + /// + /// Initializes a new instance of the struct that can be used to scale a set vertices. + /// + /// The amount to scale by on the x and y axes. + /// The resulting . + public static Matrix2D CreateScale(float scale) + { + Matrix2D result; + CreateScale(scale, scale, out result); + return result; + } + + /// + /// Calculates the struct that can be used to scale a set vertices. + /// + /// The amount to scale by on the x and y axes. + /// The resulting . + public static void CreateScale(float scale, out Matrix2D result) + { + CreateScale(scale, scale, out result); + } + + /// + /// Initializes a new instance of the struct that can be used to scale a set vertices. + /// + /// The amount to scale by on the x-axis. + /// The amount to scale by on the y-axis. + /// The resulting . + public static Matrix2D CreateScale(float xScale, float yScale) + { + Matrix2D result; + CreateScale(xScale, yScale, out result); + return result; + } + + /// + /// Calculates the struct that can be used to scale a set vertices. + /// + /// The amount to scale by on the x-axis. + /// The amount to scale by on the y-axis. + /// The resulting . + public static void CreateScale(float xScale, float yScale, out Matrix2D result) + { + result.M11 = xScale; + result.M12 = 0; + + result.M21 = 0; + result.M22 = yScale; + + result.M31 = 0; + result.M32 = 0; + } + + /// + /// Initializes a new instance of the struct that can be used to scale a set vertices. + /// + /// The amounts to scale by on the x and y axes. + /// The resulting . + public static Matrix2D CreateScale(Vector2 scale) + { + Matrix2D result; + CreateScale(ref scale, out result); + return result; + } + + /// + /// Calculates the struct that can be used to scale a set vertices. + /// + /// The amounts to scale by on the x and y axes. + /// The resulting . + public static void CreateScale(ref Vector2 scale, out Matrix2D result) + { + result.M11 = scale.X; + result.M12 = 0; + + result.M21 = 0; + result.M22 = scale.Y; + + result.M31 = 0; + result.M32 = 0; + } + + /// + /// Initializes a new instance of the struct that can be used to translate a set vertices. + /// + /// The amount to translate by on the x-axis. + /// The amount to translate by on the y-axis. + /// The resulting . + public static Matrix2D CreateTranslation(float xPosition, float yPosition) + { + Matrix2D result; + CreateTranslation(xPosition, yPosition, out result); + return result; + } + + /// + /// Calculates the struct that can be used to translate a set vertices. + /// + /// The amount to translate by on the x-axis. + /// The amount to translate by on the y-axis. + /// The resulting . + public static void CreateTranslation(float xPosition, float yPosition, out Matrix2D result) + { + result.M11 = 1; + result.M12 = 0; + + result.M21 = 0; + result.M22 = 1; + + result.M31 = xPosition; + result.M32 = yPosition; + } + + /// + /// Initializes a new instance of the struct that can be used to translate a set vertices. + /// + /// The amounts to translate by on the x and y axes. + /// The resulting . + public static Matrix2D CreateTranslation(Vector2 position) + { + Matrix2D result; + CreateTranslation(ref position, out result); + return result; + } + + /// + /// Calculates the struct that can be used to translate a set vertices. + /// + /// The amounts to translate by on the x and y axes. + /// The resulting . + public static void CreateTranslation(ref Vector2 position, out Matrix2D result) + { + result.M11 = 1; + result.M12 = 0; + + result.M21 = 0; + result.M22 = 1; + + result.M31 = position.X; + result.M32 = position.Y; + } + + /// + /// Calculates the determinant of the . + /// + /// The determinant of the . + public float Determinant() + { + return M11 * M22 - M12 * M21; + } + + /// + /// Initializes a new instance of the struct with the summation of two + /// s. + /// + /// The first . + /// The second . + /// The resulting . + public static Matrix2D Add(Matrix2D matrix1, Matrix2D matrix2) + { + matrix1.M11 += matrix2.M11; + matrix1.M12 += matrix2.M12; + + matrix1.M21 += matrix2.M21; + matrix1.M22 += matrix2.M22; + + matrix1.M31 += matrix2.M31; + matrix1.M32 += matrix2.M32; + + return matrix1; + } + + /// + /// Calculates the summation of two s. + /// + /// The first . + /// The second . + /// The resulting . + public static void Add(ref Matrix2D matrix1, ref Matrix2D matrix2, out Matrix2D result) + { + result.M11 = matrix1.M11 + matrix2.M11; + result.M12 = matrix1.M12 + matrix2.M12; + + result.M21 = matrix1.M21 + matrix2.M21; + result.M22 = matrix1.M22 + matrix2.M22; + + result.M31 = matrix1.M31 + matrix2.M31; + result.M32 = matrix1.M32 + matrix2.M32; + } + + /// + /// Initializes a new instance of the struct with the summation of two + /// s. + /// + /// The first . + /// The second . + /// The resulting . + public static Matrix2D operator +(Matrix2D matrix1, Matrix2D matrix2) + { + matrix1.M11 = matrix1.M11 + matrix2.M11; + matrix1.M12 = matrix1.M12 + matrix2.M12; + + matrix1.M21 = matrix1.M21 + matrix2.M21; + matrix1.M22 = matrix1.M22 + matrix2.M22; + + matrix1.M31 = matrix1.M31 + matrix2.M31; + matrix1.M32 = matrix1.M32 + matrix2.M32; + + return matrix1; + } + + /// + /// Initializes a new instance of the struct with the substraction of two + /// + /// s. + /// + /// The first . + /// The second . + /// The resulting . + public static Matrix2D Subtract(Matrix2D matrix1, Matrix2D matrix2) + { + matrix1.M11 = matrix1.M11 - matrix2.M11; + matrix1.M12 = matrix1.M12 - matrix2.M12; + + matrix1.M21 = matrix1.M21 - matrix2.M21; + matrix1.M22 = matrix1.M22 - matrix2.M22; + + matrix1.M31 = matrix1.M31 - matrix2.M31; + matrix1.M32 = matrix1.M32 - matrix2.M32; + return matrix1; + } + + /// + /// Calculates the substraction of two s. + /// + /// The first . + /// The second . + /// The resulting . + public static void Subtract(ref Matrix2D matrix1, ref Matrix2D matrix2, out Matrix2D result) + { + result.M11 = matrix1.M11 - matrix2.M11; + result.M12 = matrix1.M12 - matrix2.M12; + + result.M21 = matrix1.M21 - matrix2.M21; + result.M22 = matrix1.M22 - matrix2.M22; + + result.M31 = matrix1.M31 - matrix2.M31; + result.M32 = matrix1.M32 - matrix2.M32; + } + + /// + /// Initializes a new instance of the struct with the substraction of two + /// + /// s. + /// + /// The first . + /// The second . + /// The resulting . + public static Matrix2D operator -(Matrix2D matrix1, Matrix2D matrix2) + { + matrix1.M11 = matrix1.M11 - matrix2.M11; + matrix1.M12 = matrix1.M12 - matrix2.M12; + + matrix1.M21 = matrix1.M21 - matrix2.M21; + matrix1.M22 = matrix1.M22 - matrix2.M22; + + matrix1.M31 = matrix1.M31 - matrix2.M31; + matrix1.M32 = matrix1.M32 - matrix2.M32; + return matrix1; + } + + /// + /// Initializes a new instance of the struct with the multiplication of two + /// + /// s. + /// + /// The first . + /// The second . + /// The resulting . + public static Matrix2D Multiply(Matrix2D matrix1, Matrix2D matrix2) + { + var m11 = matrix1.M11 * matrix2.M11 + matrix1.M12 * matrix2.M21; + var m12 = matrix1.M11 * matrix2.M12 + matrix1.M12 * matrix2.M22; + + var m21 = matrix1.M21 * matrix2.M11 + matrix1.M22 * matrix2.M21; + var m22 = matrix1.M21 * matrix2.M12 + matrix1.M22 * matrix2.M22; + + var m31 = matrix1.M31 * matrix2.M11 + matrix1.M32 * matrix2.M21 + matrix2.M31; + var m32 = matrix1.M31 * matrix2.M12 + matrix1.M32 * matrix2.M22 + matrix2.M32; + + matrix1.M11 = m11; + matrix1.M12 = m12; + + matrix1.M21 = m21; + matrix1.M22 = m22; + + matrix1.M31 = m31; + matrix1.M32 = m32; + + return matrix1; + } + + /// + /// Calculates the multiplication of two s. + /// + /// The first . + /// The second . + /// The resulting . + public static void Multiply(ref Matrix2D matrix1, ref Matrix2D matrix2, out Matrix2D result) + { + var m11 = matrix1.M11 * matrix2.M11 + matrix1.M12 * matrix2.M21; + var m12 = matrix1.M11 * matrix2.M12 + matrix1.M12 * matrix2.M22; + + var m21 = matrix1.M21 * matrix2.M11 + matrix1.M22 * matrix2.M21; + var m22 = matrix1.M21 * matrix2.M12 + matrix1.M22 * matrix2.M22; + + var m31 = matrix1.M31 * matrix2.M11 + matrix1.M32 * matrix2.M21 + matrix2.M31; + var m32 = matrix1.M31 * matrix2.M12 + matrix1.M32 * matrix2.M22 + matrix2.M32; + + result.M11 = m11; + result.M12 = m12; + + result.M21 = m21; + result.M22 = m22; + + result.M31 = m31; + result.M32 = m32; + } + + /// + /// Initializes a new instance of the struct with the division of a by + /// a scalar. + /// + /// The . + /// The amount to divide the by. + /// The resulting . + public static Matrix2D Multiply(Matrix2D matrix, float scalar) + { + matrix.M11 *= scalar; + matrix.M12 *= scalar; + + matrix.M21 *= scalar; + matrix.M22 *= scalar; + + matrix.M31 *= scalar; + matrix.M32 *= scalar; + return matrix; + } + + /// + /// Calculates the multiplication of a by a scalar. + /// + /// The . + /// The amount to multiple the by. + /// The resulting . + public static void Multiply(ref Matrix2D matrix, float scalar, out Matrix2D result) + { + result.M11 = matrix.M11 * scalar; + result.M12 = matrix.M12 * scalar; + + result.M21 = matrix.M21 * scalar; + result.M22 = matrix.M22 * scalar; + + result.M31 = matrix.M31 * scalar; + result.M32 = matrix.M32 * scalar; + } + + /// + /// Initializes a new instance of the struct with the multiplication of two + /// + /// s. + /// + /// The first . + /// The second . + /// The resulting . + public static Matrix2D operator *(Matrix2D matrix1, Matrix2D matrix2) + { + var m11 = matrix1.M11 * matrix2.M11 + matrix1.M12 * matrix2.M21; + var m12 = matrix1.M11 * matrix2.M12 + matrix1.M12 * matrix2.M22; + + var m21 = matrix1.M21 * matrix2.M11 + matrix1.M22 * matrix2.M21; + var m22 = matrix1.M21 * matrix2.M12 + matrix1.M22 * matrix2.M22; + + var m31 = matrix1.M31 * matrix2.M11 + matrix1.M32 * matrix2.M21 + matrix2.M31; + var m32 = matrix1.M31 * matrix2.M12 + matrix1.M32 * matrix2.M22 + matrix2.M32; + + matrix1.M11 = m11; + matrix1.M12 = m12; + + matrix1.M21 = m21; + matrix1.M22 = m22; + + matrix1.M31 = m31; + matrix1.M32 = m32; + + return matrix1; + } + + /// + /// Initializes a new instance of the struct with the division of a by + /// a scalar. + /// + /// The . + /// The amount to divide the by. + /// The resulting . + public static Matrix2D operator *(Matrix2D matrix, float scalar) + { + matrix.M11 = matrix.M11 * scalar; + matrix.M12 = matrix.M12 * scalar; + + matrix.M21 = matrix.M21 * scalar; + matrix.M22 = matrix.M22 * scalar; + + matrix.M31 = matrix.M31 * scalar; + matrix.M32 = matrix.M32 * scalar; + + return matrix; + } + + /// + /// Initializes a new instance of the struct with the division of two + /// s. + /// + /// The first . + /// The second . + /// The resulting . + public static Matrix2D Divide(Matrix2D matrix1, Matrix2D matrix2) + { + matrix1.M11 = matrix1.M11 / matrix2.M11; + matrix1.M12 = matrix1.M12 / matrix2.M12; + + matrix1.M21 = matrix1.M21 / matrix2.M21; + matrix1.M22 = matrix1.M22 / matrix2.M22; + + matrix1.M31 = matrix1.M31 / matrix2.M31; + matrix1.M32 = matrix1.M32 / matrix2.M32; + return matrix1; + } + + /// + /// Calculates the division of two s. + /// + /// The first . + /// The second . + /// The resulting . + public static void Divide(ref Matrix2D matrix1, ref Matrix2D matrix2, out Matrix2D result) + { + result.M11 = matrix1.M11 / matrix2.M11; + result.M12 = matrix1.M12 / matrix2.M12; + + result.M21 = matrix1.M21 / matrix2.M21; + result.M22 = matrix1.M22 / matrix2.M22; + + result.M31 = matrix1.M31 / matrix2.M31; + result.M32 = matrix1.M32 / matrix2.M32; + } + + /// + /// Initializes a new instance of the struct with the division of a by + /// a scalar. + /// + /// The . + /// The amount to divide the by. + /// The resulting . + public static Matrix2D Divide(Matrix2D matrix, float scalar) + { + var num = 1f / scalar; + matrix.M11 = matrix.M11 * num; + matrix.M12 = matrix.M12 * num; + + matrix.M21 = matrix.M21 * num; + matrix.M22 = matrix.M22 * num; + + matrix.M31 = matrix.M31 * num; + matrix.M32 = matrix.M32 * num; + + return matrix; + } + + /// + /// Calculates the division of a by a scalar. + /// + /// The . + /// The amount to divide the by. + /// The resulting . + public static void Divide(ref Matrix2D matrix, float scalar, out Matrix2D result) + { + var num = 1f / scalar; + result.M11 = matrix.M11 * num; + result.M12 = matrix.M12 * num; + + result.M21 = matrix.M21 * num; + result.M22 = matrix.M22 * num; + + result.M31 = matrix.M31 * num; + result.M32 = matrix.M32 * num; + } + + /// + /// Initializes a new instance of the struct with the division of two + /// s. + /// + /// The first . + /// The second . + /// The resulting . + public static Matrix2D operator /(Matrix2D matrix1, Matrix2D matrix2) + { + matrix1.M11 = matrix1.M11 / matrix2.M11; + matrix1.M12 = matrix1.M12 / matrix2.M12; + + matrix1.M21 = matrix1.M21 / matrix2.M21; + matrix1.M22 = matrix1.M22 / matrix2.M22; + + matrix1.M31 = matrix1.M31 / matrix2.M31; + matrix1.M32 = matrix1.M32 / matrix2.M32; + return matrix1; + } + + /// + /// Initializes a new instance of the struct with the division of a by + /// a scalar. + /// + /// The . + /// The amount to divide the by. + /// The resulting . + public static Matrix2D operator /(Matrix2D matrix, float scalar) + { + var num = 1f / scalar; + matrix.M11 = matrix.M11 * num; + matrix.M12 = matrix.M12 * num; + + matrix.M21 = matrix.M21 * num; + matrix.M22 = matrix.M22 * num; + + matrix.M31 = matrix.M31 * num; + matrix.M32 = matrix.M32 * num; + return matrix; + } + + /// + /// Initializes a new instance of the struct with the inversion of a . + /// + /// The . + /// The resulting . + public static Matrix2D Invert(Matrix2D matrix) + { + var det = 1 / matrix.Determinant(); + + var m11 = matrix.M22 * det; + var m12 = -matrix.M12 * det; + + var m21 = -matrix.M21 * det; + var m22 = matrix.M11 * det; + + var m31 = (matrix.M32 * matrix.M21 - matrix.M31 * matrix.M22) * det; + var m32 = -(matrix.M32 * matrix.M11 - matrix.M31 * matrix.M12) * det; + + return new Matrix2D(m11, m12, m21, m22, m31, m32); + } + + /// + /// Calculates the inversion of a . + /// + /// The . + /// The resulting . + public static void Invert(ref Matrix2D matrix, out Matrix2D result) + { + var det = 1 / matrix.Determinant(); + + result.M11 = matrix.M22 * det; + result.M12 = -matrix.M12 * det; + + result.M21 = -matrix.M21 * det; + result.M22 = matrix.M11 * det; + + result.M31 = (matrix.M32 * matrix.M21 - matrix.M31 * matrix.M22) * det; + result.M32 = -(matrix.M32 * matrix.M11 - matrix.M31 * matrix.M12) * det; + } + + /// + /// Initializes a new instance of the struct with the inversion of a . + /// + /// The . + /// The resulting . + public static Matrix2D operator -(Matrix2D matrix) + { + matrix.M11 = -matrix.M11; + matrix.M12 = -matrix.M12; + + matrix.M21 = -matrix.M21; + matrix.M22 = -matrix.M22; + + matrix.M31 = -matrix.M31; + matrix.M32 = -matrix.M32; + return matrix; + } + + /// + /// Compares a for equality with another without any tolerance. + /// + /// The first . + /// The second . + /// true if the s are equal; false otherwise. + public static bool operator ==(Matrix2D matrix1, Matrix2D matrix2) + { + return (matrix1.M11 == matrix2.M11) && (matrix1.M12 == matrix2.M12) && (matrix1.M21 == matrix2.M21) && + (matrix1.M22 == matrix2.M22) && (matrix1.M31 == matrix2.M31) && (matrix1.M32 == matrix2.M32); + } + + /// + /// Compares a for inequality with another without any tolerance. + /// + /// The first . + /// The second . + /// true if the s are not equal; false otherwise. + public static bool operator !=(Matrix2D matrix1, Matrix2D matrix2) + { + return (matrix1.M11 != matrix2.M11) || (matrix1.M12 != matrix2.M12) || (matrix1.M21 != matrix2.M21) || + (matrix1.M22 != matrix2.M22) || (matrix1.M31 != matrix2.M31) || (matrix1.M32 != matrix2.M32); + } + + /// + /// Returns a value that indicates whether the current is equal to a specified + /// . + /// + /// The with which to make the comparison. + /// + /// true if the current is equal to the specified ; + /// false otherwise. + /// + public bool Equals(ref Matrix2D matrix) + { + return (M11 == matrix.M11) && (M12 == matrix.M12) && (M21 == matrix.M21) && (M22 == matrix.M22) && + (M31 == matrix.M31) && (M32 == matrix.M32); + } + + /// + /// Returns a value that indicates whether the current is equal to a specified + /// . + /// + /// The with which to make the comparison. + /// + /// true if the current is equal to the specified ; + /// false otherwise. + /// + public bool Equals(Matrix2D matrix) + { + return Equals(ref matrix); + } + + /// + /// Returns a value that indicates whether the current is equal to a specified object. + /// + /// The object with which to make the comparison. + /// + /// true if the current is equal to the specified object; + /// false otherwise. + /// + public override bool Equals(object obj) + { + return obj is Matrix2D && Equals((Matrix2D)obj); + } + + /// + /// Returns a hash code for this . + /// + /// + /// A hash code for this , suitable for use in hashing algorithms and data structures like a + /// hash table. + /// + public override int GetHashCode() + { + // ReSharper disable NonReadonlyMemberInGetHashCode + return M11.GetHashCode() + M12.GetHashCode() + M21.GetHashCode() + M22.GetHashCode() + M31.GetHashCode() + + M32.GetHashCode(); + // ReSharper restore NonReadonlyMemberInGetHashCode + } + + /// + /// Performs an implicit conversion from to . + /// + /// The . + /// + /// The resulting . + /// + public static implicit operator Matrix(Matrix2D matrix) + { + return new Matrix(matrix.M11, matrix.M12, 0, 0, matrix.M21, matrix.M22, 0, 0, 0, 0, 1, 0, matrix.M31, + matrix.M32, 0, 1); + } + + /// + /// Performs an explicit conversion from a specified to a . + /// + /// The . + /// The depth value. + /// The resulting . + public static void ToMatrix(ref Matrix2D matrix, float depth, out Matrix result) + { + result.M11 = matrix.M11; + result.M12 = matrix.M12; + result.M13 = 0; + result.M14 = 0; + + result.M21 = matrix.M21; + result.M22 = matrix.M22; + result.M23 = 0; + result.M24 = 0; + + result.M31 = 0; + result.M32 = 0; + result.M33 = 1; + result.M34 = 0; + + result.M41 = matrix.M31; + result.M42 = matrix.M32; + result.M43 = depth; + result.M44 = 1; + } + + /// + /// Performs an explicit conversion from a specified to a . + /// + /// The depth value. + /// The resulting . + public Matrix ToMatrix(float depth = 0) + { + Matrix result; + ToMatrix(ref this, depth, out result); + return result; + } + + /// + /// Gets the debug display string. + /// + /// + /// The debug display string. + /// + internal string DebugDisplayString => this == Identity + ? "Identity" + : $"T:({Translation.X:0.##},{Translation.Y:0.##}), R:{MathHelper.ToDegrees(Rotation):0.##}°, S:({Scale.X:0.##},{Scale.Y:0.##})" + ; + + /// + /// Returns a that represents this . + /// + /// + /// A that represents this . + /// + public override string ToString() + { + return $"{{M11:{M11} M12:{M12}}} {{M21:{M21} M22:{M22}}} {{M31:{M31} M32:{M32}}}"; + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended/MonoGame.Extended.csproj b/Source/MonoGame.Extended/MonoGame.Extended.csproj index 081cf0ea..df874689 100644 --- a/Source/MonoGame.Extended/MonoGame.Extended.csproj +++ b/Source/MonoGame.Extended/MonoGame.Extended.csproj @@ -24,7 +24,8 @@ TRACE;DEBUG prompt 4 - true + false + 6 pdbonly @@ -33,136 +34,83 @@ TRACE prompt 4 - true + false - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - + + + + + + + - + - - - - - - - - - - + @@ -170,20 +118,24 @@ - - - ..\..\Dependencies\MonoGame.Framework.dll + + ..\packages\MonoGame.Framework.Portable.3.6.0.1625\lib\portable-net45+win8+wpa81\MonoGame.Framework.dll - - ..\packages\Newtonsoft.Json.8.0.3\lib\portable-net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll + + + ..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll True + + + + + \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/Properties/AssemblyInfo.cs b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..6a6028ae --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Content.Pipeline.Tests.Tiled")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Content.Pipeline.Tests.Tiled")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("90b096cb-61a5-485f-ba3e-2530166e5e72")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/isometric.tmx b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric.tmx similarity index 100% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/isometric.tmx rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric.tmx diff --git a/Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/isometric_tileset.png b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric_tileset.png similarity index 100% rename from Source/Demos/Demo.SpriteSheetAnimations/Content/Tilesets/isometric_tileset.png rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric_tileset.png diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/level01.tmx b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/level01.tmx similarity index 99% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/level01.tmx rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/level01.tmx index a10d7dbf..39eb9003 100644 --- a/Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/level01.tmx +++ b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/level01.tmx @@ -3,7 +3,7 @@ - + diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-object-layer.tmx b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-object-layer.tmx similarity index 100% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-object-layer.tmx rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-object-layer.tmx diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset-base64.tmx b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-base64.tmx similarity index 100% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset-base64.tmx rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-base64.tmx diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset-csv.tmx b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-csv.tmx similarity index 100% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset-csv.tmx rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-csv.tmx diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset-gzip.tmx b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-gzip.tmx similarity index 100% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset-gzip.tmx rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-gzip.tmx diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset-xml.tmx b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-xml.tmx similarity index 100% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset-xml.tmx rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-xml.tmx diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset-zlib.tmx b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-zlib.tmx similarity index 100% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset-zlib.tmx rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-zlib.tmx diff --git a/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TiledMapImporterProcessorTests.cs b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TiledMapImporterProcessorTests.cs new file mode 100644 index 00000000..18275fb4 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TiledMapImporterProcessorTests.cs @@ -0,0 +1,197 @@ +//using System.Linq; + +//namespace MonoGame.Extended.Content.Pipeline.Tests.Tiled +//{ +// [TestFixture] +// public class TiledMapImporterProcessorTests +// { +// [Test] +// public void TiledMapImporter_Import_Test() +// { +// var filePath = PathExtensions.GetApplicationFullPath("TestData", "level01.tmx"); + +// var logger = Substitute.For(); +// var importer = new TmxMapImporter(); +// var importerContext = Substitute.For(); +// importerContext.Logger.Returns(logger); + +// var map = importer.Import(filePath, importerContext); + +// Assert.AreEqual("1.0", map.Version); +// Assert.AreEqual(TmxOrientation.Orthogonal, map.Orientation); +// Assert.AreEqual(TmxRenderOrder.RightDown, map.RenderOrder); +// Assert.AreEqual(20, map.Width); +// Assert.AreEqual(10, map.Height); +// Assert.AreEqual(128, map.TileWidth); +// Assert.AreEqual(128, map.TileHeight); +// Assert.AreEqual("#7d7d7d", map.BackgroundColor); +// Assert.AreEqual("awesome", map.Properties[0].Name); +// Assert.AreEqual("42", map.Properties[0].Value); +// Assert.AreEqual(1, map.Tilesets.Count); +// Assert.AreEqual(3, map.Layers.Count); +// Assert.AreEqual(TmxOrientation.Orthogonal,map.Orientation); + +// var tileset = map.Tilesets.First(); +// Assert.AreEqual(1, tileset.FirstGlobalIdentifier); +// Assert.AreEqual("free-tileset.png", tileset.Image.Source); +// Assert.AreEqual(652, tileset.Image.Width); +// Assert.AreEqual(783, tileset.Image.Height); +// Assert.AreEqual(2, tileset.Margin); +// Assert.AreEqual(30, tileset.TileCount); +// Assert.AreEqual("free-tileset", tileset.Name); +// Assert.AreEqual(null, tileset.Source); +// Assert.AreEqual(2, tileset.Spacing); +// Assert.AreEqual(0, tileset.TerrainTypes.Count); +// Assert.AreEqual(0, tileset.Properties.Count); +// Assert.AreEqual(128, tileset.TileHeight); +// Assert.AreEqual(128, tileset.TileWidth); +// Assert.AreEqual(0, tileset.TileOffset.X); +// Assert.AreEqual(0, tileset.TileOffset.Y); + +// var tileLayer2 = (TmxTileLayer) map.Layers[0]; +// Assert.AreEqual("Tile Layer 2", tileLayer2.Name); +// Assert.AreEqual(1, tileLayer2.Opacity); +// Assert.AreEqual(0, tileLayer2.Properties.Count); +// Assert.AreEqual(true, tileLayer2.Visible); +// Assert.AreEqual(200, tileLayer2.Data.Tiles.Count); +// Assert.AreEqual(0, tileLayer2.X); +// Assert.AreEqual(0, tileLayer2.Y); + +// var imageLayer = (TmxImageLayer)map.Layers[1]; +// Assert.AreEqual("Image Layer 1", imageLayer.Name); +// Assert.AreEqual(1, imageLayer.Opacity); +// Assert.AreEqual(0, imageLayer.Properties.Count); +// Assert.AreEqual(true, imageLayer.Visible); +// Assert.AreEqual("hills.png", imageLayer.Image.Source); +// Assert.AreEqual(100, imageLayer.X); +// Assert.AreEqual(100, imageLayer.Y); + +// var tileLayer1 = (TmxTileLayer)map.Layers[2]; +// Assert.AreEqual("Tile Layer 1", tileLayer1.Name); +// Assert.AreEqual(2, tileLayer1.Properties.Count); + +// Assert.AreEqual("customlayerprop", tileLayer1.Properties[0].Name); +// Assert.AreEqual("1", tileLayer1.Properties[0].Value); + +// Assert.AreEqual("customlayerprop2", tileLayer1.Properties[1].Name); +// Assert.AreEqual("2", tileLayer1.Properties[1].Value); +// } + +// [Test] +// public void TiledMapImporter_Xml_Test() +// { +// var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-tileset-xml.tmx"); +// var map = ImportAndProcessMap(filePath); +// var layer = map.Layers.OfType().First(); +// var actualData = layer.Data.Tiles.Select(i => i.GlobalIdentifier).ToArray(); + +// Assert.IsNull(layer.Data.Encoding); +// Assert.IsNull(layer.Data.Compression); +// Assert.IsTrue(new uint[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(actualData)); +// } + +// [Test] +// public void TiledMapImporter_Csv_Test() +// { +// var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-tileset-csv.tmx"); +// var map = ImportAndProcessMap(filePath); +// var layer = map.Layers.OfType().First(); +// var data = layer.Data.Tiles.Select(i => i.GlobalIdentifier).ToArray(); + +// Assert.AreEqual("csv", layer.Data.Encoding); +// Assert.IsNull(layer.Data.Compression); +// Assert.IsTrue(new uint[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data)); +// } + +// [Test] +// public void TiledMapImporter_Base64_Test() +// { +// var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-tileset-base64.tmx"); +// var map = ImportAndProcessMap(filePath); +// var layer = map.Layers.OfType().First(); +// var data = layer.Data.Tiles.Select(i => i.GlobalIdentifier).ToArray(); + +// Assert.AreEqual("base64", layer.Data.Encoding); +// Assert.IsNull(layer.Data.Compression); +// Assert.IsTrue(new uint[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data)); +// } + +// [Test] +// public void TiledMapImporter_Gzip_Test() +// { +// var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-tileset-gzip.tmx"); +// var map = ImportAndProcessMap(filePath); +// var layer = map.Layers.OfType().First(); +// var data = layer.Data.Tiles.Select(i => i.GlobalIdentifier).ToArray(); + +// Assert.AreEqual("base64", layer.Data.Encoding); +// Assert.AreEqual("gzip", layer.Data.Compression); +// Assert.IsTrue(new uint[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data)); +// } + + +// [Test] +// public void TiledMapImporter_Zlib_Test() +// { +// var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-tileset-zlib.tmx"); +// var map = ImportAndProcessMap(filePath); +// var layer = map.Layers.OfType().First(); +// var data = layer.Data.Tiles.Select(i => i.GlobalIdentifier).ToArray(); + +// Assert.AreEqual("base64", layer.Data.Encoding); +// Assert.AreEqual("zlib", layer.Data.Compression); +// Assert.IsTrue(new uint[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data)); +// } + +// [Test] +// public void TiledMapImporter_ObjectLayer_Test() +// { +// var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-object-layer.tmx"); +// var map = ImportAndProcessMap(filePath); + +// Assert.AreEqual(1, map.Layers.Count); +// Assert.IsInstanceOf(map.Layers[0]); +// var tmxObjectGroup = map.Layers[0] as TmxObjectLayer; +// var tmxObject = tmxObjectGroup.Objects[0]; +// var tmxPolygon = tmxObjectGroup.Objects[3].Polygon; +// var tmxPolyline = tmxObjectGroup.Objects[4].Polyline; + +// Assert.AreEqual("Object Layer 1", tmxObjectGroup.Name); +// Assert.AreEqual(1, tmxObject.Identifier); +// Assert.AreEqual(131.345f, tmxObject.X); +// Assert.AreEqual(65.234f, tmxObject.Y); +// Assert.AreEqual(311.111f, tmxObject.Width); +// Assert.AreEqual(311.232f, tmxObject.Height); +// Assert.AreEqual(1, tmxObject.Properties.Count); +// Assert.AreEqual("shape", tmxObject.Properties[0].Name); +// Assert.AreEqual("circle", tmxObject.Properties[0].Value); +// Assert.IsNotNull(tmxObject.Ellipse); +// Assert.IsFalse(tmxObjectGroup.Objects[1].Visible); +// Assert.AreEqual(-1, tmxObjectGroup.Objects[1].GlobalIdentifier); +// Assert.AreEqual(23, tmxObjectGroup.Objects[5].GlobalIdentifier); +// Assert.AreEqual("rectangle", tmxObjectGroup.Objects[2].Type); +// Assert.IsNotNull(tmxPolygon); +// Assert.AreEqual("0,0 180,90 -8,275 -45,81 38,77", tmxPolygon.Points); +// Assert.IsNotNull(tmxPolyline); +// Assert.AreEqual("0,0 28,299 326,413 461,308", tmxPolyline.Points); +// } + + +// private static TmxMap ImportAndProcessMap(string filename) +// { +// var logger = Substitute.For(); +// var importer = new TmxMapImporter(); +// var importerContext = Substitute.For(); +// importerContext.Logger.Returns(logger); + +// var processor = new TmxMapProcessor(); +// var processorContext = Substitute.For(); +// processorContext.Logger.Returns(logger); + +// var import = importer.Import(filename, importerContext); +// var result = processor.Process(import, processorContext); + +// return result; +// } +// } +//} diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/packages.config b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/packages.config similarity index 63% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/packages.config rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/packages.config index 00a9b9c5..2fa1da35 100644 --- a/Source/MonoGame.Extended.Content.Pipeline.Tests/packages.config +++ b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorImporterTests.cs b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorImporterTests.cs similarity index 97% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorImporterTests.cs rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorImporterTests.cs index 7f4f93ec..e1da58dd 100644 --- a/Source/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorImporterTests.cs +++ b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorImporterTests.cs @@ -11,7 +11,7 @@ namespace MonoGame.Extended.Content.Pipeline.Tests [Test] public void AstridAnimatorImporter_Import_Test() { - var filePath = PathExtensions.GetApplicationFullPath(@"TestData\astrid-animator.aa"); + var filePath = PathExtensions.GetApplicationFullPath("TestData", "astrid-animator.aa"); var importer = new AstridAnimatorImporter(); var result = importer.Import(filePath, null); var data = result.Data; diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorProcessorTests.cs b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorProcessorTests.cs similarity index 96% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorProcessorTests.cs rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorProcessorTests.cs index 5edbea4e..7ca9dbf9 100644 --- a/Source/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorProcessorTests.cs +++ b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorProcessorTests.cs @@ -11,7 +11,7 @@ namespace MonoGame.Extended.Content.Pipeline.Tests [Test] public void AstridAnimatorProcessor_Process_Test() { - var filePath = PathExtensions.GetApplicationFullPath(@"TestData\astrid-animator.aa"); + var filePath = PathExtensions.GetApplicationFullPath("TestData", "astrid-animator.aa"); var importer = new AstridAnimatorImporter(); var importerResult = importer.Import(filePath, null); diff --git a/Source/MonoGame.Extended.Content.Pipeline.Tests/MonoGame.Extended.Content.Pipeline.Tests.csproj b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests/MonoGame.Extended.Content.Pipeline.Tests.csproj similarity index 67% rename from Source/MonoGame.Extended.Content.Pipeline.Tests/MonoGame.Extended.Content.Pipeline.Tests.csproj rename to Source/Tests/MonoGame.Extended.Content.Pipeline.Tests/MonoGame.Extended.Content.Pipeline.Tests.csproj index 293e6e65..2e28fd01 100644 --- a/Source/MonoGame.Extended.Content.Pipeline.Tests/MonoGame.Extended.Content.Pipeline.Tests.csproj +++ b/Source/Tests/MonoGame.Extended.Content.Pipeline.Tests/MonoGame.Extended.Content.Pipeline.Tests.csproj @@ -35,14 +35,14 @@ True - $(MSBuildExtensionsPath)\MonoGame\v3.0\Tools\MonoGame.Framework.Content.Pipeline.dll + C:\Program Files (x86)\MSBuild\MonoGame\v3.0\Tools\MonoGame.Framework.Content.Pipeline.dll - - ..\packages\NSubstitute.1.9.2.0\lib\net45\NSubstitute.dll + + ..\..\packages\NSubstitute.1.10.0.0\lib\net45\NSubstitute.dll True - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll True @@ -57,57 +57,41 @@ - - - Designer - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - PreserveNewest PreserveNewest - - - Designer + + PreserveNewest - + + {e41b1841-fb13-489f-92da-beee176a2c57} + MonoGame.Extended.Content.Pipeline.Animations + + + {96BE0F14-3DC8-43B9-992F-654BD36CC3C7} + MonoGame.Extended.Content.Pipeline.Tiled + + {28CD24BD-432C-4987-9E9D-65CFCF120EA0} MonoGame.Extended.Content.Pipeline - + {41724C52-3D50-45BB-81EB-3C8A247EAFD1} MonoGame.Extended + + + + \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Gui.Tests/Properties/AssemblyInfo.cs b/Source/Tests/MonoGame.Extended.Gui.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..596d8f52 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Gui.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MonoGame.Extended.Gui.Tests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MonoGame.Extended.Gui.Tests")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("43cba868-9bfc-4e02-8a7a-142c603b087e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Tests/MonoGame.Extended.Gui.Tests/packages.config b/Source/Tests/MonoGame.Extended.Gui.Tests/packages.config new file mode 100644 index 00000000..09e803f9 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Gui.Tests/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/AngleTest.cs b/Source/Tests/MonoGame.Extended.Tests/AngleTest.cs new file mode 100644 index 00000000..35478f44 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/AngleTest.cs @@ -0,0 +1,91 @@ +using Microsoft.Xna.Framework; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests +{ + [TestFixture] + public class AngleTest + { + private const float _delta = 0.00001f; + + [Test] + public void ConstructorTest() + { + const float value = 0.5f; + // ReSharper disable once RedundantArgumentDefaultValue + var radians = new Angle(value, AngleType.Radian); + var degrees = new Angle(value, AngleType.Degree); + var gradians = new Angle(value, AngleType.Gradian); + var revolutions = new Angle(value, AngleType.Revolution); + + Assert.That(0.5f, Is.EqualTo(radians.Radians).Within(_delta)); + Assert.That(0.5f, Is.EqualTo(degrees.Degrees).Within(_delta)); + Assert.That(0.5f, Is.EqualTo(gradians.Gradians).Within(_delta)); + Assert.That(0.5f, Is.EqualTo(revolutions.Revolutions).Within(_delta)); + } + + [Test] + public void ConversionTest() + { + //from radians + var radians = new Angle(MathHelper.Pi); + Assert.AreEqual(180f, radians.Degrees, _delta); + Assert.AreEqual(200f, radians.Gradians, _delta); + Assert.AreEqual(0.5f, radians.Revolutions, _delta); + //to radians + var degrees = new Angle(180f, AngleType.Degree); + var gradians = new Angle(200f, AngleType.Gradian); + var revolutions = new Angle(0.5f, AngleType.Revolution); + + Assert.That(MathHelper.Pi, Is.EqualTo(degrees.Radians).Within(_delta)); + Assert.That(MathHelper.Pi, Is.EqualTo(gradians.Radians).Within(_delta)); + Assert.That(MathHelper.Pi, Is.EqualTo(revolutions.Radians).Within(_delta)); + } + + [Test] + public void WrapTest() + { + for (var f = -10f; f < 10f; f += 0.1f) + { + var wrappositive = new Angle(f); + wrappositive.WrapPositive(); + + var wrap = new Angle(f); + wrap.Wrap(); + + Assert.GreaterOrEqual(wrappositive.Radians, 0); + Assert.Less(wrappositive.Radians, 2d * MathHelper.Pi); + + Assert.GreaterOrEqual(wrap.Radians, -MathHelper.Pi); + Assert.Less(wrap.Radians, MathHelper.Pi); + } + } + + [Test] + public void VectorTest() + { + var angle = Angle.FromVector(Vector2.One); + Assert.AreEqual(-MathHelper.Pi / 4d, angle.Radians, _delta); + Assert.AreEqual(10f, angle.ToVector(10f).Length()); + + angle = Angle.FromVector(Vector2.UnitX); + Assert.AreEqual(0, angle.Radians, _delta); + Assert.IsTrue(Vector2.UnitX.EqualsWithTolerence(angle.ToUnitVector())); + + angle = Angle.FromVector(-Vector2.UnitY); + Assert.AreEqual(MathHelper.Pi / 2d, angle.Radians, _delta); + Assert.IsTrue((-Vector2.UnitY).EqualsWithTolerence(angle.ToUnitVector())); + } + + [Test] + public void EqualsTest() + { + var angle1 = new Angle(0); + var angle2 = new Angle(MathHelper.Pi * 2f); + Assert.IsTrue(angle1 == angle2); + angle2.Radians = MathHelper.Pi * 4f; + Assert.IsTrue(angle1.Equals(angle2)); + } + + } +} \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/AssertExtensions.cs b/Source/Tests/MonoGame.Extended.Tests/AssertExtensions.cs new file mode 100644 index 00000000..72347ca0 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/AssertExtensions.cs @@ -0,0 +1,21 @@ +using System; + +namespace MonoGame.Extended.Tests +{ + public static class AssertExtensions + { + public static bool AreApproximatelyEqual(Point2 firstPoint, Point2 secondPoint) + { + return Math.Abs(firstPoint.X - secondPoint.X) < float.Epsilon && + Math.Abs(firstPoint.Y - secondPoint.Y) < float.Epsilon; + } + + public static bool AreApproximatelyEqual(RectangleF firstRectangle, RectangleF secondRectangle) + { + return Math.Abs(firstRectangle.X - secondRectangle.X) < float.Epsilon && + Math.Abs(firstRectangle.Y - secondRectangle.Y) < float.Epsilon && + Math.Abs(firstRectangle.Width - secondRectangle.Width) < float.Epsilon && + Math.Abs(firstRectangle.Height - secondRectangle.Height) < float.Epsilon; + } + } +} \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/BitmapFonts/BitmapFontTests.cs b/Source/Tests/MonoGame.Extended.Tests/BitmapFonts/BitmapFontTests.cs new file mode 100644 index 00000000..fea45788 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/BitmapFonts/BitmapFontTests.cs @@ -0,0 +1,81 @@ +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.BitmapFonts; +using MonoGame.Extended.TextureAtlases; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.BitmapFonts +{ + [TestFixture] + public class BitmapFontTests + { + [Test] + public void BitmapFont_Constructor_Test() + { + var font = CreateTestFont(); + + Assert.That(font.Name, Is.EqualTo("Impact")); + Assert.That(font.LineHeight, Is.EqualTo(22)); + } + + [Test] + public void BitmapFont_MeasureString_SingleWord_Test() + { + var font = CreateTestFont(); + var size = font.MeasureString("fox"); + + Assert.That(size.Width, Is.EqualTo(40)); + Assert.That(size.Height, Is.EqualTo(font.LineHeight)); + } + + [Test] + public void BitmapFont_MeasureString_WithLetterSpacing_Test() + { + var font = CreateTestFont(); + font.LetterSpacing = 3; + + var size = font.MeasureString("fox"); + + Assert.That(size.Width, Is.EqualTo(46)); + Assert.That(size.Height, Is.EqualTo(font.LineHeight)); + } + + [Test] + public void BitmapFont_MeasureString_MultipleLines_Test() + { + var font = CreateTestFont(); + var size = font.MeasureString("box fox\nbox of fox"); + + Assert.That(size.Width, Is.EqualTo(123)); + Assert.That(size.Height, Is.EqualTo(font.LineHeight * 2)); + } + + [Test] + public void BitmapFont_MeasureString_EmptyString_Test() + { + var font = CreateTestFont(); + var size = font.MeasureString(string.Empty); + + Assert.That(size.Width, Is.EqualTo(0)); + Assert.That(size.Height, Is.EqualTo(0)); + } + + private static BitmapFont CreateTestFont() + { + var graphicsDevice = new TestGraphicsDevice(); + var texture = new Texture2D(graphicsDevice, width: 256, height: 256); + var textureRegion = new TextureRegion2D(texture, x: 219, y: 61, width: 16, height: 18); + var regions = new[] + { + // extracted from 'Impact' font. 'x' is particularly interesting because it has a negative x offset + new BitmapFontRegion(textureRegion, character: ' ', xOffset: 0, yOffset: 0, xAdvance: 6), + new BitmapFontRegion(textureRegion, character: 'b', xOffset: 0, yOffset: 7, xAdvance: 17), + new BitmapFontRegion(textureRegion, character: 'f', xOffset: 0, yOffset: 7, xAdvance: 9), + new BitmapFontRegion(textureRegion, character: 'o', xOffset: 0, yOffset: 11, xAdvance: 16), + new BitmapFontRegion(textureRegion, character: 'x', xOffset: -1, yOffset: 11, xAdvance: 13), + }; + + var font = new BitmapFont("Impact", regions, lineHeight: 22); + return font; + } + } +} diff --git a/Source/MonoGame.Extended.Tests/Camera2DTests.cs b/Source/Tests/MonoGame.Extended.Tests/Camera2DTests.cs similarity index 96% rename from Source/MonoGame.Extended.Tests/Camera2DTests.cs rename to Source/Tests/MonoGame.Extended.Tests/Camera2DTests.cs index 6113b4e3..c85dfc9e 100644 --- a/Source/MonoGame.Extended.Tests/Camera2DTests.cs +++ b/Source/Tests/MonoGame.Extended.Tests/Camera2DTests.cs @@ -1,6 +1,5 @@ using Microsoft.Xna.Framework; using MonoGame.Extended.ViewportAdapters; -using NSubstitute; using NUnit.Framework; namespace MonoGame.Extended.Tests @@ -40,7 +39,7 @@ namespace MonoGame.Extended.Tests } [Test] - public void Camera2D_GetBoundingRectangle_Test() + public void Camera2D_BoundingRectangle_Test() { var graphicsDevice = TestHelper.CreateGraphicsDevice(); var viewport = new DefaultViewportAdapter(graphicsDevice); @@ -48,7 +47,7 @@ namespace MonoGame.Extended.Tests camera.Move(new Vector2(2, 0)); camera.Move(new Vector2(0, 3)); - var boundingRectangle = camera.GetBoundingRectangle(); + var boundingRectangle = camera.BoundingRectangle; Assert.AreEqual(2, boundingRectangle.Left, 0.01); Assert.AreEqual(3, boundingRectangle.Top, 0.01); diff --git a/Source/Tests/MonoGame.Extended.Tests/Collections/BitVector32Tests.cs b/Source/Tests/MonoGame.Extended.Tests/Collections/BitVector32Tests.cs new file mode 100644 index 00000000..94d7377e --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Collections/BitVector32Tests.cs @@ -0,0 +1,245 @@ +using System; +using MonoGame.Extended.Collections; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Collections +{ + internal class BitVector32Tests + { + [TestFixture] + public class BitVector32Test + { + [Test] + public void Constructors() + { + var bitVector = new BitVector32((uint)31); + Assert.AreEqual(31, bitVector); + Assert.IsTrue(bitVector[31]); + Assert.IsFalse(bitVector[32]); + Assert.AreEqual(bitVector.ToString(), "BitVector32{00000000000000000000000000011111}"); + + var bitVector2 = new BitVector32(bitVector); + Assert.IsTrue(bitVector == bitVector2); + Assert.AreEqual(bitVector.GetHashCode(), bitVector2.GetHashCode()); + + bitVector2[32] = true; + Assert.IsFalse(bitVector == bitVector2); + Assert.IsFalse(bitVector.GetHashCode() == bitVector2.GetHashCode()); + } + + [Test] + public void Constructors_MaxValue() + { + var bitVector = new BitVector32(uint.MaxValue); + Assert.AreEqual(uint.MaxValue, bitVector); + Assert.AreEqual("BitVector32{11111111111111111111111111111111}", BitVector32.ToString(bitVector)); + } + + [Test] + public void Constructors_MinValue() + { + var bitVector = new BitVector32(uint.MinValue); + Assert.AreEqual(uint.MinValue, bitVector); + Assert.AreEqual("BitVector32{00000000000000000000000000000000}", BitVector32.ToString(bitVector)); + } + + [Test] + public void Indexers() + { + var bitVector = new BitVector32((uint)7); + Assert.IsTrue(bitVector[0]); + Assert.IsTrue(bitVector[1]); + Assert.IsTrue(bitVector[2]); + Assert.IsTrue(bitVector[4]); + Assert.IsTrue(!bitVector[8]); + Assert.IsTrue(!bitVector[16]); + bitVector[8] = true; + Assert.IsTrue(bitVector[4]); + Assert.IsTrue(bitVector[8]); + Assert.IsTrue(!bitVector[16]); + bitVector[8] = false; + Assert.IsTrue(bitVector[4]); + Assert.IsTrue(!bitVector[8]); + Assert.IsTrue(!bitVector[16]); + + var section = BitVector32.CreateSection(31); + section = BitVector32.CreateSection(64, section); + + var bitVector1 = new BitVector32((uint)0xffff77); + var bitVector2 = new BitVector32((uint)bitVector1[section]); + Assert.AreEqual(123, bitVector1[section]); + } + + [Test] + public void CreateMask() + { + Assert.AreEqual(1, BitVector32.CreateMask()); + Assert.AreEqual(1, BitVector32.CreateMask(0)); + Assert.AreEqual(2, BitVector32.CreateMask(1)); + Assert.AreEqual(32, BitVector32.CreateMask(16)); + var overflow = -2; + Assert.AreEqual((uint)overflow, BitVector32.CreateMask(int.MaxValue)); + // ReSharper disable once ConvertToConstant.Local + var overflow2 = -4; + Assert.AreEqual((uint)overflow2, BitVector32.CreateMask((uint)overflow)); + // ReSharper disable once ConvertToConstant.Local + overflow = int.MinValue + 1; + Assert.AreEqual(2, BitVector32.CreateMask((uint)overflow)); + } + + [Test] + [ExpectedException(typeof (InvalidOperationException))] + public void CreateMask_MinValue() + { + // ReSharper disable once ConvertToConstant.Local + var overflow = int.MinValue; + BitVector32.CreateMask((uint)overflow); + } + + [Test] + public void CreateSection() + { + var section = BitVector32.CreateSection(1); + Assert.AreEqual(1, section.Mask); + + section = BitVector32.CreateSection(2); + Assert.AreEqual(3, section.Mask); + + section = BitVector32.CreateSection(3); + Assert.AreEqual(3, section.Mask); + + section = BitVector32.CreateSection(5); + Assert.AreEqual(7, section.Mask); + + section = BitVector32.CreateSection(20); + Assert.AreEqual(0x1f, section.Mask); + + section = BitVector32.CreateSection(short.MaxValue); + Assert.AreEqual(0x7fff, section.Mask); + + section = BitVector32.CreateSection(short.MaxValue - 100); + Assert.AreEqual(0x7fff, section.Mask); + + try + { + BitVector32.CreateSection(0); + Assert.Fail(); + } + catch (ArgumentException) + { + } + + try + { + BitVector32.CreateSection(-1); + Assert.Fail(); + } + catch (ArgumentException) + { + } + + try + { + BitVector32.CreateSection(short.MinValue); + Assert.Fail(); + } + catch (ArgumentException) + { + } + + section = BitVector32.CreateSection(20); + Assert.AreEqual(0x1f, section.Mask); + Assert.AreEqual(0x00, section.Offset); + section = BitVector32.CreateSection(120, section); + Assert.AreEqual(0x7f, section.Mask); + Assert.AreEqual(0x05, section.Offset); + section = BitVector32.CreateSection(1000, section); + Assert.AreEqual(0x3ff, section.Mask); + Assert.AreEqual(0x0c, section.Offset); + } + + [Test] + public void Section() + { + var section1 = BitVector32.CreateSection(20); + Assert.AreEqual(31, section1.Mask); + Assert.AreEqual(0, section1.Offset); + Assert.AreEqual("Section{0x1f, 0x0}", BitVector32.Section.ToString(section1)); + + var section2 = BitVector32.CreateSection(20); + Assert.IsTrue(section1.Equals(section2)); + Assert.IsTrue(section2.Equals((object)section1)); + Assert.AreEqual(section1.GetHashCode(), section2.GetHashCode()); + Assert.AreEqual("Section{0x1f, 0x0}", section2.ToString()); + } + + [Test] + public void SectionCorrectSize() + { + var section1 = BitVector32.CreateSection(32767); + var section2 = BitVector32.CreateSection(32767, section1); + var section3 = BitVector32.CreateSection(3, section2); + var bitVector = new BitVector32((uint)0) + { + [section3] = 3 + }; + Assert.AreEqual(bitVector[section3], 3); + } + + [Test] + public void SectionIncorrectSize() + { + var section1 = BitVector32.CreateSection(32767); + var section2 = BitVector32.CreateSection(32767, section1); + BitVector32.CreateSection(4, section2); + } + + [Test] + public void NegativeIndexer() + { + var bitVector = new BitVector32(uint.MaxValue); + Assert.IsTrue(bitVector[uint.MinValue], "UInt32.MinValue"); + } + + [Test] + public void TestSectionIndexer() + { + var bitVector = new BitVector32(uint.MaxValue); + var section = BitVector32.CreateSection(1); + section = BitVector32.CreateSection(short.MaxValue, section); + section = BitVector32.CreateSection(short.MaxValue, section); + section = BitVector32.CreateSection(1, section); + Assert.AreEqual(1, bitVector[section]); + bitVector[section] = 0; + + Assert.AreEqual(int.MaxValue, bitVector); + } + + [Test, ExpectedException(typeof (ArgumentException))] + public void TestCreateSection1() + { + var section = BitVector32.CreateSection(short.MaxValue); + BitVector32.CreateSection(0, section); + } + + [Test, ExpectedException(typeof (ArgumentException))] + public void TestCreateSection2() + { + var section = BitVector32.CreateSection(short.MaxValue); + BitVector32.CreateSection(-1, section); + } + + [Test, ExpectedException(typeof (ArgumentException))] + public void TestCreateSection3() + { + var section = BitVector32.CreateSection(short.MaxValue); + BitVector32.CreateSection(short.MinValue, section); + } + + private void Print(BitVector32.Section s) + { + Console.WriteLine(s + " : " + s.Mask + " : " + s.Offset); + } + } + } +} diff --git a/Source/MonoGame.Extended.Tests/Collections/DequeTests.cs b/Source/Tests/MonoGame.Extended.Tests/Collections/DequeTests.cs similarity index 100% rename from Source/MonoGame.Extended.Tests/Collections/DequeTests.cs rename to Source/Tests/MonoGame.Extended.Tests/Collections/DequeTests.cs diff --git a/Source/MonoGame.Extended.Tests/Collections/PoolTests.cs b/Source/Tests/MonoGame.Extended.Tests/Collections/PoolTests.cs similarity index 97% rename from Source/MonoGame.Extended.Tests/Collections/PoolTests.cs rename to Source/Tests/MonoGame.Extended.Tests/Collections/PoolTests.cs index 00120db6..31f79de5 100644 --- a/Source/MonoGame.Extended.Tests/Collections/PoolTests.cs +++ b/Source/Tests/MonoGame.Extended.Tests/Collections/PoolTests.cs @@ -1,4 +1,5 @@ -using MonoGame.Extended.Collections; +using Microsoft.Xna.Framework.Graphics; +using MonoGame.Extended.Collections; using NUnit.Framework; namespace MonoGame.Extended.Tests.Collections diff --git a/Source/MonoGame.Extended.Tests/MockGameWindow.cs b/Source/Tests/MonoGame.Extended.Tests/MockGameWindow.cs similarity index 79% rename from Source/MonoGame.Extended.Tests/MockGameWindow.cs rename to Source/Tests/MonoGame.Extended.Tests/MockGameWindow.cs index d703211f..4ed4f1fb 100644 --- a/Source/MonoGame.Extended.Tests/MockGameWindow.cs +++ b/Source/Tests/MonoGame.Extended.Tests/MockGameWindow.cs @@ -1,13 +1,21 @@ using System; +using System.Drawing; using Microsoft.Xna.Framework; +using Point = Microsoft.Xna.Framework.Point; +using Rectangle = Microsoft.Xna.Framework.Rectangle; namespace MonoGame.Extended.Tests { public class MockGameWindow : GameWindow { - public void RaiseOnClientSizeChangedEvent() + public override bool AllowUserResizing { get; set; } + public override Rectangle ClientBounds { get; } + public override DisplayOrientation CurrentOrientation { get; } + public override IntPtr Handle { get; } + public override string ScreenDeviceName { get; } + + public MockGameWindow() { - OnClientSizeChanged(); } public override void BeginScreenDeviceChange(bool willBeFullScreen) @@ -26,11 +34,8 @@ namespace MonoGame.Extended.Tests { } - public override bool AllowUserResizing { get; set; } - public override Rectangle ClientBounds { get; } - public override Point Position { get; set; } - public override DisplayOrientation CurrentOrientation { get; } - public override IntPtr Handle { get; } - public override string ScreenDeviceName { get; } +#if __MonoCS__ + public override Icon Icon { get; set; } +#endif } } \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/MonoGame.Extended.Tests.csproj b/Source/Tests/MonoGame.Extended.Tests/MonoGame.Extended.Tests.csproj new file mode 100644 index 00000000..e3807dda --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/MonoGame.Extended.Tests.csproj @@ -0,0 +1,129 @@ + + + + + Debug + AnyCPU + {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1} + Library + Properties + MonoGame.Extended.Tests + MonoGame.Extended.Tests + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + true + + + + False + ..\..\..\Dependencies\MonoGame.Framework.dll + + + ..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll + + + ..\..\packages\NSubstitute.1.10.0.0\lib\net45\NSubstitute.dll + True + + + ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {9B3AB8A1-78AA-471A-AFD0-B10B932115BC} + MonoGame.Extended.Graphics + + + {6c8b9e29-d09b-4901-80fd-45aaa35882c6} + MonoGame.Extended.Particles + + + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902} + MonoGame.Extended.Tiled + + + {41724C52-3D50-45BB-81EB-3C8A247EAFD1} + MonoGame.Extended + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tests/OpenTK.dll.config b/Source/Tests/MonoGame.Extended.Tests/OpenTK.dll.config similarity index 100% rename from Source/MonoGame.Extended.Tests/OpenTK.dll.config rename to Source/Tests/MonoGame.Extended.Tests/OpenTK.dll.config diff --git a/Source/Tests/MonoGame.Extended.Tests/Particles/AssertionModifier.cs b/Source/Tests/MonoGame.Extended.Tests/Particles/AssertionModifier.cs new file mode 100644 index 00000000..b243b3aa --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Particles/AssertionModifier.cs @@ -0,0 +1,25 @@ +using System; +using MonoGame.Extended.Particles; +using MonoGame.Extended.Particles.Modifiers; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Particles +{ + internal class AssertionModifier : IModifier + { + private readonly Predicate _predicate; + + public AssertionModifier(Predicate predicate) + { + _predicate = predicate; + } + + public unsafe void Update(float elapsedSeconds, ParticleBuffer.ParticleIterator iterator) + { + while (iterator.HasNext) { + var particle = iterator.Next(); + Assert.IsTrue(_predicate(*particle)); + } + } + } +} \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/Particles/ColourTests.cs b/Source/Tests/MonoGame.Extended.Tests/Particles/ColourTests.cs new file mode 100644 index 00000000..be34cbed --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Particles/ColourTests.cs @@ -0,0 +1,116 @@ +using System; +using System.Globalization; +using MonoGame.Extended.Particles; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Particles +{ + [TestFixture] + public class ColourTests + { + public class Constructor + { + [Test] + public void WhenGivenValues_ReturnsInitializedColour() + { + var colour = new HslColor(1f, 1f, 1f); + Assert.AreEqual(colour.H, 1f); + Assert.AreEqual(colour.S, 1f); + Assert.AreEqual(colour.L, 1f); + } + } + + public class AreEqualColourMethod + { + [Test] + public void WhenGivenEqualValues_ReturnsTrue() + { + var x = new HslColor(360f, 1f, 1f); + var y = new HslColor(360f, 1f, 1f); + Assert.AreEqual(x, y); + } + + [Test] + public void WhenGivenDifferentValues_ReturnsFalse() + { + var x = new HslColor(0f, 1f, 0f); + var y = new HslColor(360f, 1f, 1f); + Assert.IsFalse(x.Equals(y)); + } + } + + public class AreEqualObjectMethod + { + [Test] + public void WhenGivenNull_ReturnsFalse() + { + var colour = new HslColor(360f, 1f, 1f); + Assert.IsNotNull(colour); + } + + [Test] + + public void WhenGivenEqualColour_ReturnsTrue() + { + var x = new HslColor(360f, 1f, 1f); + + Object y = new HslColor(360f, 1f, 1f); + Assert.AreEqual(x, y); + } + + [Test] + + public void WhenGivenDifferentColour_ReturnsFalse() + { + var x = new HslColor(360f, 1f, 1f); + + Object y = new HslColor(0f, 1f, 0f); + Assert.IsFalse(x.Equals(y)); + } + + [Test] + + public void WhenGivenObjectOfAntotherType_ReturnsFalse() + { + var colour = new HslColor(360f, 1f, 1f); + + // ReSharper disable once SuspiciousTypeConversion.Global + Assert.IsFalse(colour.Equals(DateTime.Now)); + } + } + + public class GetHashCodeMethod + { + [Test] + + public void WhenObjectsAreDifferent_YieldsDifferentHashCodes() + { + var x = new HslColor(0f, 1f, 0f); + var y = new HslColor(360f, 1f, 1f); + Assert.AreNotEqual(x.GetHashCode(), y.GetHashCode()); + } + + [Test] + + public void WhenObjectsAreSame_YieldsIdenticalHashCodes() + { + var x = new HslColor(180f, 0.5f, 0.5f); + var y = new HslColor(180f, 0.5f, 0.5f); + Assert.AreEqual(x.GetHashCode(), y.GetHashCode()); + } + } + + public class ToStringMethod + { + [Theory] + [TestCase(360f, 1f, 1f, "H:0.0° S:100.0 L:100.0")] + [TestCase(180f, 0.5f, 0.5f, "H:180.0° S:50.0 L:50.0")] + [TestCase(0f, 0f, 0f, "H:0.0° S:0.0 L:0.0")] + public void ReturnsCorrectValue(float h, float s, float l, string expected) + { + var colour = new HslColor(h, s, l); + Assert.AreEqual(expected, colour.ToString()); + } + } + } +} \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/Particles/EmitterTests.cs b/Source/Tests/MonoGame.Extended.Tests/Particles/EmitterTests.cs new file mode 100644 index 00000000..87758247 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Particles/EmitterTests.cs @@ -0,0 +1,129 @@ +using System; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Particles; +using MonoGame.Extended.Particles.Modifiers; +using MonoGame.Extended.Particles.Profiles; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Particles +{ + [TestFixture] + public class EmitterTests + { + public class UpdateMethod + { + [Test] + public void WhenThereAreParticlesToExpire_DecreasesActiveParticleCount() + { + var subject = new ParticleEmitter(null, 100, TimeSpan.FromSeconds(1), Profile.Point()) + { + Parameters = new ParticleReleaseParameters + { + Quantity = 1 + } + }; + + subject.Trigger(new Vector2(0f, 0f)); + Assert.AreEqual(subject.ActiveParticles, 1); + + subject.Update(2f); + Assert.AreEqual(subject.ActiveParticles, 0); + } + + [Test] + public void WhenThereAreParticlesToExpire_DoesNotPassExpiredParticlesToModifiers() + { + var subject = new ParticleEmitter(null, 100, TimeSpan.FromSeconds(1), Profile.Point()) + { + Parameters = new ParticleReleaseParameters() + { + Quantity = 1 + }, + Modifiers = new IModifier[] { + new AssertionModifier(particle => particle.Age <= 1f) + } + }; + + subject.Trigger(new Vector2(0f, 0f)); + subject.Update(0.5f); + subject.Trigger(new Vector2(0f, 0f)); + subject.Update(0.5f); + subject.Trigger(new Vector2(0f, 0f)); + subject.Update(0.5f); + } + + [Test] + public void WhenThereAreNoActiveParticles_GracefullyDoesNothing() + { + var subject = new ParticleEmitter(null, 100, TimeSpan.FromSeconds(1), Profile.Point(), autoTrigger: false); + + subject.Update(0.5f); + Assert.AreEqual(subject.ActiveParticles, 0); + } + } + + public class TriggerMethod + { + [Test] + public void WhenEnoughHeadroom_IncreasesActiveParticlesCountByReleaseQuantity() + { + var subject = new ParticleEmitter(null, 100, TimeSpan.FromSeconds(1), Profile.Point()) + { + Parameters = new ParticleReleaseParameters + { + Quantity = 10 + } + }; + Assert.AreEqual(subject.ActiveParticles, 0); + subject.Trigger(new Vector2(0f, 0f)); + Assert.AreEqual(subject.ActiveParticles, 10); + } + + [Test] + public void WhenNotEnoughHeadroom_IncreasesActiveParticlesCountByRemainingParticles() + { + var subject = new ParticleEmitter(null, 15, TimeSpan.FromSeconds(1), Profile.Point()) + { + Parameters = new ParticleReleaseParameters + { + Quantity = 10 + } + }; + + subject.Trigger(new Vector2(0f, 0f)); + Assert.AreEqual(subject.ActiveParticles, 10); + subject.Trigger(new Vector2(0f, 0f)); + Assert.AreEqual(subject.ActiveParticles, 15); + } + + [Test] + public void WhenNoRemainingParticles_DoesNotIncreaseActiveParticlesCount() + { + var subject = new ParticleEmitter(null, 10, TimeSpan.FromSeconds(1), Profile.Point()) + { + Parameters = new ParticleReleaseParameters + { + Quantity = 10 + } + }; + + subject.Trigger(new Vector2(0f, 0f)); + Assert.AreEqual(subject.ActiveParticles, 10); + subject.Trigger(new Vector2(0f, 0f)); + Assert.AreEqual(subject.ActiveParticles, 10); + } + } + + public class DisposeMethod + { + [Test] + public void IsIdempotent() + { + var subject = new ParticleEmitter(null, 10, TimeSpan.FromSeconds(1), Profile.Point()); + + subject.Dispose(); + subject.Dispose(); + } + } + } +} \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/Particles/ParticleBufferTests.cs b/Source/Tests/MonoGame.Extended.Tests/Particles/ParticleBufferTests.cs new file mode 100644 index 00000000..9510d102 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Particles/ParticleBufferTests.cs @@ -0,0 +1,184 @@ +using System; +using MonoGame.Extended.Particles; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Particles +{ + [TestFixture] + public class ParticleBufferTests + { + public class AvailableProperty + { + [Test] + public void WhenNoParticlesReleased_ReturnsBufferSize() + { + var subject = new ParticleBuffer(100); + + Assert.AreEqual(subject.Available, 100); + } + + [Test] + public void WhenSomeParticlesReleased_ReturnsAvailableCount() + { + var subject = new ParticleBuffer(100); + + subject.Release(10); + Assert.AreEqual(subject.Available, 90); + } + + [Test] + public void WhenAllParticlesReleased_ReturnsZero() + { + var subject = new ParticleBuffer(100); + + subject.Release(100); + Assert.AreEqual(subject.Available, 0); + + } + } + + public class CountProperty + { + [Test] + public void WhenNoParticlesReleased_ReturnsZero() + { + var subject = new ParticleBuffer(100); + Assert.AreEqual(subject.Count, 0); + } + + [Test] + public void WhenSomeParticlesReleased_ReturnsCount() + { + var subject = new ParticleBuffer(100); + + subject.Release(10); + Assert.AreEqual(subject.Count, 10); + + } + + [Test] + public void WhenAllParticlesReleased_ReturnsZero() + { + var subject = new ParticleBuffer(100); + + subject.Release(100); + Assert.AreEqual(subject.Count, 100); + + } + } + + public class ReleaseMethod + { + [Test] + public void WhenPassedReasonableQuantity_ReturnsNumberReleased() + { + var subject = new ParticleBuffer(100); + + var count = subject.Release(50); + + Assert.AreEqual(count.Total, 50); + } + + [Test] + public void WhenPassedImpossibleQuantity_ReturnsNumberActuallyReleased() + { + var subject = new ParticleBuffer(100); + + var count = subject.Release(200); + Assert.AreEqual(count.Total, 100); + } + } + + public class ReclaimMethod + { + [Test] + public void WhenPassedReasonableNumber_ReclaimsParticles() + { + var subject = new ParticleBuffer(100); + + subject.Release(100); + Assert.AreEqual(subject.Count, 100); + + subject.Reclaim(50); + Assert.AreEqual(subject.Count, 50); + } + } + + public class CopyToMethod + { + [Test] + public void WhenBufferIsSequential_CopiesParticlesInOrder() + { + unsafe + { + var subject = new ParticleBuffer(10); + var iterator = subject.Release(5); + + do + { + var particle = iterator.Next(); + particle->Age = 1f; + } + while (iterator.HasNext); + + var destination = new Particle[10]; + + fixed (Particle* buffer = destination) + { + subject.CopyTo((IntPtr)buffer); + } + + Assert.AreEqual(destination[0].Age, 1f, 0.0001); + Assert.AreEqual(destination[1].Age, 1f, 0.0001); + Assert.AreEqual(destination[2].Age, 1f, 0.0001); + Assert.AreEqual(destination[3].Age, 1f, 0.0001); + Assert.AreEqual(destination[4].Age, 1f, 0.0001); + } + } + } + + public class CopyToReverseMethod + { + [Test] + public void WhenBufferIsSequential_CopiesParticlesInReverseOrder() + { + unsafe + { + var subject = new ParticleBuffer(10); + var iterator = subject.Release(5); + + do + { + var particle = iterator.Next(); + particle->Age = 1f; + } + while (iterator.HasNext); + + var destination = new Particle[10]; + + fixed (Particle* buffer = destination) + { + subject.CopyToReverse((IntPtr)buffer); + } + + Assert.AreEqual(destination[0].Age, 1f, 0.0001); + Assert.AreEqual(destination[1].Age, 1f, 0.0001); + Assert.AreEqual(destination[2].Age, 1f, 0.0001); + Assert.AreEqual(destination[3].Age, 1f, 0.0001); + Assert.AreEqual(destination[4].Age, 1f, 0.0001); + } + } + } + + public class DisposeMethod + { + [Test] + public void IsIdempotent() + { + var subject = new ParticleBuffer(100); + subject.Dispose(); + subject.Dispose(); + } + } + } +} \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/Particles/Profiles/PointProfileTests.cs b/Source/Tests/MonoGame.Extended.Tests/Particles/Profiles/PointProfileTests.cs new file mode 100644 index 00000000..868b3baf --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Particles/Profiles/PointProfileTests.cs @@ -0,0 +1,36 @@ +using System; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Particles.Profiles; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Particles.Profiles +{ + [TestFixture] + public class PointProfileTests + { + [Test] + public void ReturnsZeroOffset() + { + var subject = new PointProfile(); + + Vector2 offset, heading; + subject.GetOffsetAndHeading(out offset, out heading); + + Assert.AreEqual(0f, offset.X); + Assert.AreEqual(0f, offset.Y); + } + + [Test] + public void ReturnsHeadingAsUnitVector() + { + var subject = new PointProfile(); + + Vector2 offset, heading; + subject.GetOffsetAndHeading(out offset, out heading); + + var length = Math.Sqrt(heading.X * heading.X + heading.Y * heading.Y); + Assert.AreEqual(1f, length, 0.000001); + } + + } +} \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/Particles/Profiles/RingProfileTests.cs b/Source/Tests/MonoGame.Extended.Tests/Particles/Profiles/RingProfileTests.cs new file mode 100644 index 00000000..ec6fbc88 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Particles/Profiles/RingProfileTests.cs @@ -0,0 +1,42 @@ +using System; +using Microsoft.Xna.Framework; +using MonoGame.Extended.Particles.Profiles; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Particles.Profiles +{ + [TestFixture] + public class RingProfileTests + { + [Test] + public void ReturnsOffsetEqualToRadius() + { + var subject = new RingProfile + { + Radius = 10f + }; + Vector2 offset, heading; + subject.GetOffsetAndHeading(out offset, out heading); + + var length = Math.Sqrt(offset.X * offset.X + offset.Y * offset.Y); + Assert.AreEqual(10f, length, 0.000001); + } + + [Test] + public void WhenRadiateIsTrue_HeadingIsEqualToNormalizedOffset() + { + var subject = new RingProfile + { + Radius = 10f, + Radiate = Profile.CircleRadiation.Out + }; + Vector2 offset, heading; + subject.GetOffsetAndHeading(out offset, out heading); + + Assert.AreEqual(heading.X, offset.X / 10, 0.000001); + Assert.AreEqual(heading.Y, offset.Y / 10, 0.000001); + + } + + } +} \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/Primitives/BoundingRectangleTests.cs b/Source/Tests/MonoGame.Extended.Tests/Primitives/BoundingRectangleTests.cs new file mode 100644 index 00000000..cdbc0ccc --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Primitives/BoundingRectangleTests.cs @@ -0,0 +1,396 @@ +using System.Collections.Generic; +using System.Globalization; +using Microsoft.Xna.Framework; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Primitives +{ + [TestFixture] + public class BoundingRectangleTests + { + public IEnumerable ConstructorTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Vector2()).SetName( + "The empty bounding rectangle has the expected position and radii."); + yield return + new TestCaseData(new Point2(5, 5), new Vector2(15, 15)).SetName( + "A non-empty bounding rectangle has the expected position and radii."); + } + } + + [Test] + [TestCaseSource(nameof(ConstructorTestCases))] + public void Constructor(Point2 centre, Vector2 radii) + { + var boundingRectangle = new BoundingRectangle(centre, radii); + Assert.AreEqual(centre, boundingRectangle.Center); + Assert.AreEqual(radii, boundingRectangle.HalfExtents); + } + + public IEnumerable CreateFromMinimumMaximumTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Point2(), new BoundingRectangle()).SetName( + "The bounding rectangle created from the zero minimum point and zero maximum point is the empty bounding rectangle.") + ; + yield return + new TestCaseData(new Point2(5, 5), new Point2(15, 15), + new BoundingRectangle(new Point2(10, 10), new Size2(5, 5))).SetName( + "The bounding rectangle created from the non-zero minimum point and the non-zero maximum point is the expected bounding rectangle.") + ; + } + } + + [Test] + [TestCaseSource(nameof(CreateFromMinimumMaximumTestCases))] + public void CreateFromMinimumMaximum(Point2 minimum, Point2 maximum, BoundingRectangle expectedBoundingRectangle) + { + var actualBoundingRectangle = BoundingRectangle.CreateFrom(minimum, maximum); + Assert.AreEqual(expectedBoundingRectangle, actualBoundingRectangle); + } + + public IEnumerable CreateFromPointsTestCases + { + get + { + yield return + new TestCaseData(null, new BoundingRectangle()).SetName( + "The bounding rectangle created from null points is the empty bounding rectangle."); + yield return + new TestCaseData(new Point2[0], new BoundingRectangle()).SetName( + "The bounding rectangle created from the empty set of points is the empty bounding rectangle."); + yield return + new TestCaseData( + new[] + { + new Point2(5, 5), new Point2(10, 10), new Point2(15, 15), new Point2(-5, -5), + new Point2(-15, -15) + }, new BoundingRectangle(new Point2(0, 0), new Size2(15, 15))).SetName( + "The bounding rectangle created from a non-empty set of points is the expected bounding rectangle."); + } + } + + [Test] + [TestCaseSource(nameof(CreateFromPointsTestCases))] + public void CreateFromPoints(Point2[] points, BoundingRectangle expectedBoundingRectangle) + { + var actualBoundingRectangle = BoundingRectangle.CreateFrom(points); + Assert.AreEqual(expectedBoundingRectangle, actualBoundingRectangle); + } + + public IEnumerable CreateFromTransformedTestCases + { + get + { + yield return + new TestCaseData(new BoundingRectangle(), Matrix2D.Identity, new BoundingRectangle()).SetName( + "The bounding rectangle created from the empty bounding rectangle transformed by the identity matrix is the empty bounding rectangle.") + ; + yield return + new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(20, 20)), Matrix2D.CreateScale(2), new BoundingRectangle(new Point2(0, 0), new Size2(40, 40))).SetName( + "The bounding rectangle created from a non-empty bounding rectangle transformed by a non-identity matrix is the expected bounding rectangle.") + ; + } + } + + [Test] + [TestCaseSource(nameof(CreateFromTransformedTestCases))] + public void CreateFromTransformed(BoundingRectangle boundingRectangle, Matrix2D transformMatrix, + BoundingRectangle expectedBoundingRectangle) + { + var actualBoundingRectangle = BoundingRectangle.Transform(boundingRectangle, ref transformMatrix); + Assert.AreEqual(expectedBoundingRectangle, actualBoundingRectangle); + } + + public IEnumerable UnionTestCases + { + get + { + yield return + new TestCaseData(new BoundingRectangle(), new BoundingRectangle(), new BoundingRectangle()).SetName( + "The union of two empty bounding rectangles is the empty bounding rectangle."); + yield return + new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(15, 15)), + new BoundingRectangle(new Point2(20, 20), new Size2(40, 40)), new BoundingRectangle(new Point2(20, 20), new Size2(40, 40))) + .SetName( + "The union of two non-empty bounding rectangles is the expected bounding rectangle."); + } + } + + [Test] + [TestCaseSource(nameof(UnionTestCases))] + public void Union(BoundingRectangle boundingRectangle1, BoundingRectangle boundingRectangle2, BoundingRectangle expectedBoundingRectangle) + { + Assert.AreEqual(expectedBoundingRectangle, boundingRectangle1.Union(boundingRectangle2)); + Assert.AreEqual(expectedBoundingRectangle, BoundingRectangle.Union(boundingRectangle1, boundingRectangle2)); + } + + public IEnumerable IntersectionTestCases + { + get + { + yield return + new TestCaseData(new BoundingRectangle(), new BoundingRectangle(), new BoundingRectangle()).SetName( + "The intersection of two empty bounding rectangles is the empty bounding box."); + yield return + new TestCaseData(new BoundingRectangle(new Point2(-10, -10), new Size2(15, 15)), + new BoundingRectangle(new Point2(20, 20), new Size2(40, 40)), + new BoundingRectangle(new Point2(-7.5f, -7.5f), new Size2(12.5f, 12.5f))).SetName( + "The intersection of two overlapping non-empty bounding rectangles is the expected bounding rectangle."); + yield return + new TestCaseData(new BoundingRectangle(new Point2(-30, -30), new Size2(15, 15)), + new BoundingRectangle(new Point2(20, 20), new Size2(10, 10)), + BoundingRectangle.Empty).SetName( + "The intersection of two non-overlapping non-empty bounding rectangles is the empty bounding rectangle."); + } + } + + [Test] + [TestCaseSource(nameof(IntersectionTestCases))] + public void Intersection(BoundingRectangle boundingRectangle1, BoundingRectangle boundingRectangle2, + BoundingRectangle? expectedBoundingRectangle) + { + Assert.AreEqual(expectedBoundingRectangle, boundingRectangle1.Intersection(boundingRectangle2)); + Assert.AreEqual(expectedBoundingRectangle, BoundingRectangle.Intersection(boundingRectangle1, boundingRectangle2)); + } + + public IEnumerable IntersectsTestCases + { + get + { + yield return + new TestCaseData(new BoundingRectangle(), new BoundingRectangle(), true).SetName( + "Two empty bounding rectangles intersect."); + yield return + new TestCaseData(new BoundingRectangle(new Point2(-10, -10), new Size2(15, 15)), + new BoundingRectangle(new Point2(20, 20), new Size2(40, 40)), true).SetName( + "Two overlapping non-empty bounding rectangles intersect."); + yield return + new TestCaseData(new BoundingRectangle(new Point2(-40, -50), new Size2(15, 15)), + new BoundingRectangle(new Point2(20, 20), new Size2(15, 15)), false).SetName( + "Two non-overlapping non-empty bounding rectangles do not intersect."); + } + } + + [Test] + [TestCaseSource(nameof(IntersectsTestCases))] + public void Intersects(BoundingRectangle boundingRectangle1, BoundingRectangle boundingRectangle2, bool expectedToIntersect) + { + Assert.AreEqual(expectedToIntersect, boundingRectangle1.Intersects(boundingRectangle2)); + Assert.AreEqual(expectedToIntersect, BoundingRectangle.Intersects(boundingRectangle1, boundingRectangle2)); + } + + public IEnumerable ContainsPointTestCases + { + get + { + yield return + new TestCaseData(new BoundingRectangle(), new Point2(), true).SetName( + "The empty bounding rectangle contains the zero point."); + yield return + new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(15, 15)), new Point2(-15, -15), true) + .SetName( + "A non-empty bounding rectangle contains a point inside it."); + yield return + new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(15, 15)), new Point2(-16, 15), false) + .SetName( + "A non-empty bounding rectangle does not contain a point outside it."); + } + } + + [Test] + [TestCaseSource(nameof(ContainsPointTestCases))] + public void ContainsPoint(BoundingRectangle boundingRectangle, Point2 point, bool expectedToContainPoint) + { + Assert.AreEqual(expectedToContainPoint, boundingRectangle.Contains(point)); + Assert.AreEqual(expectedToContainPoint, BoundingRectangle.Contains(boundingRectangle, point)); + } + + public IEnumerable ClosestPointTestCases + { + get + { + yield return + new TestCaseData(new BoundingRectangle(), new Point2(), new Point2()).SetName( + "The closest point on the empty bounding rectangle to the zero point is the zero point."); + yield return + new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Point2(50, 50)), new Point2(25, 25), + new Point2(25, 25)).SetName( + "The closest point on a non-empty bounding rectangle to a point which is inside the bounding rectangle is that point.") + ; + yield return + new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Point2(50, 50)), new Point2(400, 0), + new Point2(50, 0)).SetName( + "The closest point on a non-empty bounding rectangle to a point which is outside the bounding rectangle is the expected point.") + ; + } + } + + [Test] + [TestCaseSource(nameof(ClosestPointTestCases))] + public void ClosestPoint(BoundingRectangle boundingRectangle, Point2 point, Point2 expectedClosestPoint) + { + var actualClosestPoint = boundingRectangle.ClosestPointTo(point); + Assert.AreEqual(expectedClosestPoint, actualClosestPoint); + } + + public IEnumerable EqualityTestCases + { + get + { + yield return + new TestCaseData(new BoundingRectangle(), new BoundingRectangle(), true).SetName( + "Empty bounding rectangles are equal.") + ; + yield return + new TestCaseData( + new BoundingRectangle(new Point2(0, 0), new Size2(float.MaxValue, float.MinValue)), + new BoundingRectangle(new Point2(0, 0), + new Point2(float.MinValue, float.MaxValue)), false).SetName( + "Two different non-empty bounding rectangles are not equal."); + yield return + new TestCaseData( + new BoundingRectangle(new Point2(0, 0), new Size2(float.MinValue, float.MaxValue)), + new BoundingRectangle(new Point2(0, 0), + new Size2(float.MinValue, float.MaxValue)), true).SetName( + "Two identical non-empty bounding rectangles are equal."); + } + } + + [Test] + [TestCaseSource(nameof(EqualityTestCases))] + public void Equality(BoundingRectangle boundingRectangle1, BoundingRectangle boundingRectangle2, bool expectedToBeEqual) + { + Assert.IsTrue(Equals(boundingRectangle1, boundingRectangle2) == expectedToBeEqual); + Assert.IsTrue(boundingRectangle1 == boundingRectangle2 == expectedToBeEqual); + Assert.IsFalse(boundingRectangle1 == boundingRectangle2 != expectedToBeEqual); + Assert.IsTrue(boundingRectangle1.Equals(boundingRectangle2) == expectedToBeEqual); + + if (expectedToBeEqual) + Assert.AreEqual(boundingRectangle1.GetHashCode(), boundingRectangle2.GetHashCode()); + } + + public IEnumerable InequalityTestCases + { + get + { + yield return + new TestCaseData(new BoundingRectangle(), null, false).SetName( + "A bounding rectangle is not equal to a null object."); + yield return + new TestCaseData(new BoundingRectangle(), new object(), false).SetName( + "A bounding rectangle is not equal to an instantiated object."); + } + } + + [Test] + [TestCaseSource(nameof(InequalityTestCases))] + public void Inequality(BoundingRectangle boundingRectangle, object obj, bool expectedToBeEqual) + { + Assert.IsTrue(boundingRectangle.Equals(obj) == expectedToBeEqual); + } + + public IEnumerable HashCodeTestCases + { + get + { + yield return + new TestCaseData(new BoundingRectangle(), new BoundingRectangle(), true).SetName( + "Two empty bounding rectangles have the same hash code."); + yield return + new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(50, 50)), + new BoundingRectangle(new Point2(0, 0), new Size2(50, 50)), true).SetName( + "Two indentical non-empty bounding rectangles have the same hash code."); + yield return + new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(50, 50)), + new BoundingRectangle(new Point2(50, 50), new Size2(50, 50)), false).SetName( + "Two different non-empty bounding rectangles do not have the same hash code."); + } + } + + [Test] + [TestCaseSource(nameof(HashCodeTestCases))] + public void HashCode(BoundingRectangle boundingRectangle1, BoundingRectangle boundingRectangle2, bool expectedThatHashCodesAreEqual) + { + var hashCode1 = boundingRectangle1.GetHashCode(); + var hashCode2 = boundingRectangle2.GetHashCode(); + if (expectedThatHashCodesAreEqual) + Assert.AreEqual(hashCode1, hashCode2); + else + Assert.AreNotEqual(hashCode1, hashCode2); + } + + public IEnumerable ToRectangleTestCases + { + get + { + yield return + new TestCaseData(new BoundingRectangle(), new Rectangle()).SetName( + "The empty bounding rectangle point converted to a rectangle is the empty rectangle."); + yield return + new TestCaseData(new BoundingRectangle(new Point2(25, 25), new Size2(25, 25)), + new Rectangle(0, 0, 50, 50)).SetName( + "A non-empty bounding rectangle converted to a rectangle is the expected rectangle."); + } + } + + [Test] + [TestCaseSource(nameof(ToRectangleTestCases))] + public void ToRectangle(BoundingRectangle boundingRectangle, Rectangle expectedRectangle) + { + var actualRectangle = (Rectangle)boundingRectangle; + Assert.AreEqual(expectedRectangle, actualRectangle); + } + + public IEnumerable FromRectangleTestCases + { + get + { + yield return + new TestCaseData(new Rectangle(), new BoundingRectangle()).SetName( + "The empty rectangle converted to a bounding rectangle is the empty bounding rectangle."); + yield return + new TestCaseData(new Rectangle(0, 0, 50, 50), + new BoundingRectangle(new Point2(25, 25), new Size2(25, 25))).SetName( + "A non-empty rectangle converted to a bounding rectangle is the expected bounding rectangle."); + } + } + + [Test] + [TestCaseSource(nameof(FromRectangleTestCases))] + public void FromRectangle(Rectangle rectangle, BoundingRectangle expectedBoundingRectangle) + { + var actualBoundingRectangle = (BoundingRectangle)rectangle; + Assert.AreEqual(expectedBoundingRectangle, actualBoundingRectangle); + } + + public IEnumerable StringCases + { + get + { + yield return + new TestCaseData(new BoundingRectangle(), + string.Format(CultureInfo.CurrentCulture, "Centre: {0}, Radii: {1}", new Point2(), + new Vector2())).SetName( + "The empty bounding rectangle has the expected string representation using the current culture."); + yield return new TestCaseData(new BoundingRectangle(new Point2(5.1f, -5.123f), new Size2(5.4f, -5.4123f)), + string.Format(CultureInfo.CurrentCulture, "Centre: {0}, Radii: {1}", new Point2(5.1f, -5.123f), + new Vector2(5.4f, -5.4123f))).SetName( + "A non-empty bounding rectangle has the expected string representation using the current culture."); + } + } + + [Test] + [TestCaseSource(nameof(StringCases))] + public void String(BoundingRectangle boundingRectangle, string expectedString) + { + var actualString = boundingRectangle.ToString(); + Assert.AreEqual(expectedString, actualString); + } + } +} diff --git a/Source/Tests/MonoGame.Extended.Tests/Primitives/CircleFTests.cs b/Source/Tests/MonoGame.Extended.Tests/Primitives/CircleFTests.cs new file mode 100644 index 00000000..ef94901c --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Primitives/CircleFTests.cs @@ -0,0 +1,411 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using Microsoft.Xna.Framework; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Primitives +{ + [TestFixture] + public class CircleFTests + { + public IEnumerable ConstructorTestCases + { + get + { + yield return + new TestCaseData(new Point2(), 0.0f).SetName( + "The empty circle has the expected position and radius."); + yield return + new TestCaseData(new Point2(5, 5), 15f).SetName( + "A non-empty circle has the expected position and radius."); + } + } + + [Test] + [TestCaseSource(nameof(ConstructorTestCases))] + public void Constructor(Point2 centre, float radius) + { + var circle = new CircleF(centre, radius); + Assert.AreEqual(centre, circle.Center); + Assert.AreEqual(radius, circle.Radius); + } + + public IEnumerable CreateFromMinimumMaximumTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Point2(), new CircleF()).SetName( + "The bounding circle created from the zero minimum point and zero maximum point is the empty bounding circle.") + ; + yield return + new TestCaseData(new Point2(5, 5), new Point2(15, 15), + new CircleF(new Point2(10, 10), 5f)).SetName( + "The bounding circle created from the non-zero minimum point and the non-zero maximum point is the expected bounding circle.") + ; + } + } + + [Test] + [TestCaseSource(nameof(CreateFromMinimumMaximumTestCases))] + public void CreateFromMinimumMaximum(Point2 minimum, Point2 maximum, CircleF expectedBoundingCircle) + { + var actualBoundingCircle = CircleF.CreateFrom(minimum, maximum); + Assert.AreEqual(expectedBoundingCircle, actualBoundingCircle); + } + + public IEnumerable CreateFromPointsTestCases + { + get + { + yield return + new TestCaseData(null, new CircleF()).SetName( + "The bounding circle created from null points is the empty bounding circle."); + yield return + new TestCaseData(new Point2[0], new CircleF()).SetName( + "The bounding circle created from the empty set of points is the empty bounding circle."); + yield return + new TestCaseData( + new[] + { + new Point2(5, 5), new Point2(10, 10), new Point2(15, 15), new Point2(-5, -5), + new Point2(-15, -15) + }, new CircleF(new Point2(0, 0), 15)).SetName( + "The bounding circle created from a non-empty set of points is the expected bounding circle."); + } + } + + [Test] + [TestCaseSource(nameof(CreateFromPointsTestCases))] + public void CreateFromPoints(Point2[] points, CircleF expectedCircle) + { + var actualCircle = CircleF.CreateFrom(points); + Assert.AreEqual(expectedCircle, actualCircle); + } + + public IEnumerable IntersectsCircleTestCases + { + get + { + yield return + new TestCaseData(new CircleF(), new CircleF(), true).SetName( + "Two empty circles intersect."); + yield return + new TestCaseData(new CircleF(new Point2(-10, -10), 15), + new CircleF(new Point2(20, 20), 40), true).SetName( + "Two overlapping non-empty circles intersect."); + yield return + new TestCaseData(new CircleF(new Point2(-40, -50), 15), + new CircleF(new Point2(20, 20), 15), false).SetName( + "Two non-overlapping non-empty circles do not intersect."); + } + } + + [Test] + [TestCaseSource(nameof(IntersectsCircleTestCases))] + public void Intersects(CircleF circle, CircleF circle2, bool expectedToIntersect) + { + Assert.AreEqual(expectedToIntersect, circle.Intersects(circle2)); + Assert.AreEqual(expectedToIntersect, CircleF.Intersects(circle, circle2)); + } + + public IEnumerable IntersectsRectangleTestCases + { + get + { + yield return + new TestCaseData(new CircleF(), new RectangleF(), true).SetName( + "The empty circle and the empty rectangle intersect."); + yield return + new TestCaseData(new CircleF(new Point2(0, 0), 15), + new RectangleF(new Point2(0, 0), new Size2(40, 40)), true).SetName( + "The non-empty circle and a non-empty overlapping rectangle intersect."); + yield return + new TestCaseData(new CircleF(new Point2(-40, -50), 15), + new RectangleF(new Point2(20, 20), new Size2(15, 15)), false).SetName( + "The non-empty circle and a non-empty non-overlapping rectangle do not intersect."); + } + } + + [Test] + [TestCaseSource(nameof(IntersectsRectangleTestCases))] + public void Intersects(CircleF circle, RectangleF rectangle, bool expectedToIntersect) + { + Assert.AreEqual(expectedToIntersect, circle.Intersects((BoundingRectangle)rectangle)); + Assert.AreEqual(expectedToIntersect, CircleF.Intersects(circle, (BoundingRectangle)rectangle)); + } + + public IEnumerable ContainsPointTestCases + { + get + { + yield return + new TestCaseData(new CircleF(), new Point2(), true).SetName( + "The empty circle contains the zero point."); + yield return + new TestCaseData(new CircleF(new Point2(0, 0), 15), new Point2(-15, -15), true) + .SetName( + "A non-empty circle contains a point inside it."); + yield return + new TestCaseData(new CircleF(new Point2(0, 0), 15), new Point2(-16, 15), false) + .SetName( + "A non-empty circle does not contain a point outside it."); + } + } + + [Test] + [TestCaseSource(nameof(ContainsPointTestCases))] + public void ContainsPoint(CircleF circle, Point2 point, bool expectedToContainPoint) + { + Assert.AreEqual(expectedToContainPoint, circle.Contains(point)); + Assert.AreEqual(expectedToContainPoint, CircleF.Contains(circle, point)); + } + + public IEnumerable ClosestPointTestCases + { + get + { + yield return + new TestCaseData(new CircleF(), new Point2(), new Point2()).SetName( + "The closest point on the empty circle to the zero point is the zero point."); + yield return + new TestCaseData(new CircleF(new Point2(0, 0), 50), new Point2(25, 25), + new Point2(25, 25)).SetName( + "The closest point on a non-empty circle to a point which is inside the circle is that point.") + ; + yield return + new TestCaseData(new CircleF(new Point2(0, 0), 50), new Point2(400, 0), + new Point2(50, 0)).SetName( + "The closest point on a non-empty circle to a point which is outside the circle is the expected point.") + ; + } + } + + [Test] + [TestCaseSource(nameof(ClosestPointTestCases))] + public void ClosestPoint(CircleF circle, Point2 point, Point2 expectedClosestPoint) + { + var actualClosestPoint = circle.ClosestPointTo(point); + Assert.AreEqual(expectedClosestPoint, actualClosestPoint); + } + + public IEnumerable BoundaryPointTestCases + { + get + { + yield return + new TestCaseData(new CircleF(), 0.0f, new Point2()).SetName( + "The boundary point on the empty circle at an angle is the zero point."); + yield return + new TestCaseData(new CircleF(new Point2(0, 0), 50), MathHelper.PiOver2, + new Point2(0, 50)).SetName( + "The boundary point on a non-empty circle at an angle is the expected point."); + } + } + + [Test] + [TestCaseSource(nameof(BoundaryPointTestCases))] + public void BoundaryPointAt(CircleF circle, float angle, Point2 expectedPoint) + { + var actualPoint = circle.BoundaryPointAt(angle); + AssertExtensions.AreApproximatelyEqual(expectedPoint, actualPoint); + } + + public IEnumerable EqualityTestCases + { + get + { + yield return + new TestCaseData(new CircleF(), new CircleF(), true).SetName( + "Empty circles are equal.") + ; + yield return + new TestCaseData( + new CircleF(new Point2(0, 0), float.MaxValue), + new CircleF(new Point2(0, 0), float.MinValue), false).SetName( + "Two different non-empty circles are not equal."); + yield return + new TestCaseData( + new CircleF(new Point2(0, 0), float.MinValue), + new CircleF(new Point2(0, 0), float.MinValue), true).SetName( + "Two identical non-empty circles are equal."); + } + } + + [Test] + [TestCaseSource(nameof(EqualityTestCases))] + public void Equality(CircleF circle1, CircleF circle2, bool expectedToBeEqual) + { + Assert.IsTrue(Equals(circle1, circle2) == expectedToBeEqual); + Assert.IsTrue(circle1 == circle2 == expectedToBeEqual); + Assert.IsFalse(circle1 == circle2 != expectedToBeEqual); + Assert.IsTrue(circle1.Equals(circle2) == expectedToBeEqual); + + if (expectedToBeEqual) + Assert.AreEqual(circle1.GetHashCode(), circle2.GetHashCode()); + } + + public IEnumerable InequalityTestCases + { + get + { + yield return + new TestCaseData(new CircleF(), null, false).SetName( + "A circle is not equal to a null object."); + yield return + new TestCaseData(new CircleF(), new object(), false).SetName( + "A circle is not equal to an instantiated object."); + } + } + + [Test] + [TestCaseSource(nameof(InequalityTestCases))] + public void Inequality(CircleF circle, object obj, bool expectedToBeEqual) + { + Assert.IsTrue(circle.Equals(obj) == expectedToBeEqual); + } + + public IEnumerable HashCodeTestCases + { + get + { + yield return + new TestCaseData(new CircleF(), new CircleF(), true).SetName( + "Two empty circles have the same hash code."); + yield return + new TestCaseData(new CircleF(new Point2(0, 0), 50), + new CircleF(new Point2(0, 0), 50), true).SetName( + "Two indentical non-empty circles have the same hash code."); + yield return + new TestCaseData(new CircleF(new Point2(0, 0), 50), + new CircleF(new Point2(50, 50), 50), false).SetName( + "Two different non-empty circles do not have the same hash code."); + } + } + + [Test] + [TestCaseSource(nameof(HashCodeTestCases))] + public void HashCode(CircleF circle1, CircleF circle2, bool expectedThatHashCodesAreEqual) + { + var hashCode1 = circle1.GetHashCode(); + var hashCode2 = circle2.GetHashCode(); + if (expectedThatHashCodesAreEqual) + Assert.AreEqual(hashCode1, hashCode2); + else + Assert.AreNotEqual(hashCode1, hashCode2); + } + + public IEnumerable ToRectangleTestCases + { + get + { + yield return + new TestCaseData(new CircleF(), new Rectangle()).SetName( + "The empty circle converted to a rectangle is the empty integer rectangle."); + yield return + new TestCaseData(new CircleF(new Point2(25, 25), 25), + new Rectangle(0, 0, 50, 50)).SetName( + "A non-empty circle converted to a rectangle is the expected integer rectangle."); + } + } + + [Test] + [TestCaseSource(nameof(ToRectangleTestCases))] + public void ToRectangle(CircleF circle, Rectangle expectedRectangle) + { + var actualRectangle = (Rectangle)circle; + Assert.AreEqual(expectedRectangle, actualRectangle); + } + + public IEnumerable ToRectangleFTestCases + { + get + { + yield return + new TestCaseData(new CircleF(), new RectangleF()).SetName( + "The empty circle converted to a rectangle is the empty float rectangle."); + yield return + new TestCaseData(new CircleF(new Point2(25, 25), 25), + new RectangleF(0, 0, 50, 50)).SetName( + "A non-empty circle converted to a rectangle is the expected float rectangle."); + } + } + + [Test] + [TestCaseSource(nameof(ToRectangleFTestCases))] + public void ToRectangleF(CircleF circle, RectangleF expectedRectangle) + { + var actualRectangle = (RectangleF)circle; + Assert.AreEqual(expectedRectangle, actualRectangle); + } + + public IEnumerable FromRectangleTestCases + { + get + { + yield return + new TestCaseData(new Rectangle(), new CircleF()).SetName( + "The empty rectangle converted to a circle is the empty circle."); + yield return + new TestCaseData(new Rectangle(0, 0, 50, 50), + new CircleF(new Point2(25, 25), 25)).SetName( + "A non-empty rectangle converted to a circle is the expected circle."); + } + } + + [Test] + [TestCaseSource(nameof(FromRectangleTestCases))] + public void FromRectangle(Rectangle rectangle, CircleF expectedCircle) + { + var actualCircle = (CircleF)rectangle; + Assert.AreEqual(expectedCircle, actualCircle); + } + + public IEnumerable FromRectangleFTestCases + { + get + { + yield return + new TestCaseData(new RectangleF(), new CircleF()).SetName( + "The empty rectangle converted to a circle is the empty circle."); + yield return + new TestCaseData(new RectangleF(0, 0, 50, 50), + new CircleF(new Point2(25, 25), 25)).SetName( + "A non-empty rectangle converted to a circle is the expected circle."); + } + } + + [Test] + [TestCaseSource(nameof(FromRectangleFTestCases))] + public void FromRectangleF(RectangleF rectangle, CircleF expectedCircle) + { + var actualCircle = (CircleF)rectangle; + Assert.AreEqual(expectedCircle, actualCircle); + } + + public IEnumerable StringCases + { + get + { + yield return + new TestCaseData(new CircleF(), + string.Format(CultureInfo.CurrentCulture, "Centre: {0}, Radius: {1}", new Point2(), + 0)).SetName( + "The empty circle has the expected string representation using the current culture."); + yield return new TestCaseData(new CircleF(new Point2(5.1f, -5.123f), 5.4f), + string.Format(CultureInfo.CurrentCulture, "Centre: {0}, Radius: {1}", new Point2(5.1f, -5.123f), + 5.4f)).SetName( + "A non-empty circle has the expected string representation using the current culture."); + } + } + + [Test] + [TestCaseSource(nameof(StringCases))] + public void String(CircleF circle, string expectedString) + { + var actualString = circle.ToString(); + Assert.AreEqual(expectedString, actualString); + } + } +} diff --git a/Source/Tests/MonoGame.Extended.Tests/Primitives/EllipseFTest.cs b/Source/Tests/MonoGame.Extended.Tests/Primitives/EllipseFTest.cs new file mode 100644 index 00000000..9b09a1c1 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Primitives/EllipseFTest.cs @@ -0,0 +1,38 @@ +using Microsoft.Xna.Framework; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Primitives +{ + [TestFixture] + public class EllipseFTest + { + [Test] + [TestCase(-1, -1, Result = false)] + [TestCase(110, 300, Result = true)] + [TestCase(200, 300, Result = true)] + [TestCase(290, 300, Result = true)] + [TestCase(400, 400, Result = false)] + public bool ContainsPoint_Circle(int x, int y) + { + var ellipse = new EllipseF(new Vector2(200.0f, 300.0f), 100.0f, 100.0f); + + return ellipse.Contains(x, y); + } + + [Test] + [TestCase(299, 400, Result = false)] + [TestCase(501, 400, Result = false)] + [TestCase(400, 199, Result = false)] + [TestCase(400, 601, Result = false)] + [TestCase(301, 400, Result = true)] + [TestCase(499, 400, Result = true)] + [TestCase(400, 201, Result = true)] + [TestCase(400, 599, Result = true)] + public bool ContainsPoint_NonCircle(int x, int y) + { + var ellipse = new EllipseF(new Vector2(400.0f, 400.0f), 100.0f, 200.0f); + + return ellipse.Contains(x, y); + } + } +} \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/Primitives/Point2Tests.cs b/Source/Tests/MonoGame.Extended.Tests/Primitives/Point2Tests.cs new file mode 100644 index 00000000..25fc8e4a --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Primitives/Point2Tests.cs @@ -0,0 +1,356 @@ +using System.Collections.Generic; +using System.Globalization; +using Microsoft.Xna.Framework; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Primitives +{ + [TestFixture] + public class Point2Tests + { + public IEnumerable ConstructorTestCases + { + get + { + yield return + new TestCaseData(0, 0).SetName( + "The zero point has the expected coordinates."); + yield return + new TestCaseData(float.MinValue, float.MaxValue).SetName + ( + "A non-zero point has the expected coordinates."); + } + } + + [Test] + [TestCaseSource(nameof(ConstructorTestCases))] + public void Constructor(float x, float y) + { + var point = new Point2(x, y); + Assert.AreEqual(x, point.X); + Assert.AreEqual(y, point.Y); + } + + public IEnumerable CoordinatesTestCases + { + get + { + yield return + new TestCaseData(new Point2(), 0, 0).SetName( + "The zero point has the expected coordinates."); + yield return + new TestCaseData(new Point2(float.MinValue, float.MaxValue), float.MinValue, float.MaxValue).SetName + ( + "A non-zero point has the expected coordinates."); + } + } + + [Test] + [TestCaseSource(nameof(CoordinatesTestCases))] + public void Coordinates(Point2 point, float expectedX, float expecetedY) + { + Assert.AreEqual(expectedX, point.X); + Assert.AreEqual(expecetedY, point.Y); + + point.X = 10; + Assert.AreEqual(10, point.X); + + point.Y = -10.123f; + Assert.AreEqual(-10.123f, point.Y); + } + + public IEnumerable VectorAdditionTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Vector2(), new Point2()).SetName( + "The addition of the zero point and the zero vector is the zero point."); + yield return + new TestCaseData(new Point2(5, 5), new Vector2(15, 15), new Point2(20, 20)).SetName( + "The addition of a non-zero point and a non-zero vector is the expected point."); + } + } + + [Test] + [TestCaseSource(nameof(VectorAdditionTestCases))] + public void VectorAddition(Point2 point, Vector2 vector, Point2 expectedPoint) + { + Assert.AreEqual(expectedPoint, point + vector); + Assert.AreEqual(expectedPoint, Point2.Add(point, vector)); + } + + public IEnumerable VectorSubtractionTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Vector2(), new Point2()).SetName( + "The vector subtraction of two zero points is the zero vector."); + yield return + new TestCaseData(new Point2(5, 5), new Vector2(15, 15), new Point2(-10, -10)).SetName( + "The vector subtraction of two non-zero points is the expected vector."); + } + } + + [Test] + [TestCaseSource(nameof(VectorSubtractionTestCases))] + public void VectorSubtraction(Point2 point, Vector2 vector, Point2 expectedPoint) + { + Assert.AreEqual(expectedPoint, point - vector); + Assert.AreEqual(expectedPoint, Point2.Subtract(point, vector)); + } + + + public IEnumerable DisplacementTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Point2(), new Vector2()).SetName( + "The displacement between two zero points is the zero vector."); + yield return + new TestCaseData(new Point2(5, 5), new Point2(15, 15), new Vector2(10, 10)).SetName( + "The displacement between two non-zero points is the expected vector."); + } + } + + [Test] + [TestCaseSource(nameof(DisplacementTestCases))] + public void Displacement(Point2 point1, Point2 point2, Vector2 expectedVector) + { + Assert.AreEqual(expectedVector, point2 - point1); + Assert.AreEqual(expectedVector, Point2.Displacement(point2, point1)); + } + + public IEnumerable SizeAdditionTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Size2(), new Point2()).SetName( + "The size addition of the zero point with the empty size is the zero point."); + yield return + new TestCaseData(new Point2(5, 5), new Size2(15, 15), new Point2(20, 20)).SetName( + "The size addition of a non-zero point with a non-empty size is the expected point."); + } + } + + [Test] + [TestCaseSource(nameof(SizeAdditionTestCases))] + public void SizeAdditon(Point2 point, Size2 size, Point2 expectedPoint) + { + Assert.AreEqual(expectedPoint, point + size); + Assert.AreEqual(expectedPoint, Point2.Add(point, size)); + } + + public IEnumerable SizeSubtractionTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Size2(), new Point2()).SetName( + "The size substraction of the zero point with the empty size is the zero point."); + yield return + new TestCaseData(new Point2(5, 5), new Size2(15, 15), new Point2(-10, -10)).SetName( + "The size subscration of a non-zero point with a non-empty size is the expected point."); + } + } + + [Test] + [TestCaseSource(nameof(SizeSubtractionTestCases))] + public void SizeSubtraction(Point2 point, Size2 size, Point2 expectedPoint) + { + Assert.AreEqual(expectedPoint, point - size); + Assert.AreEqual(expectedPoint, Point2.Subtract(point, size)); + } + + public IEnumerable MinimumTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Point2(), new Point2()).SetName( + "The minimum coordinates of two zero points is the coordinates of the zero point."); + yield return + new TestCaseData(new Point2(float.MaxValue, float.MinValue), new Point2(int.MaxValue, int.MinValue), + new Point2(int.MaxValue, float.MinValue)).SetName( + "The minimum coordaintes of two non-zero points is the expected coordinates."); + } + } + + [Test] + [TestCaseSource(nameof(MinimumTestCases))] + public void Minimum(Point2 point1, Point2 point2, Point2 expectedPoint) + { + var actualPoint = Point2.Minimum(point1, point2); + Assert.AreEqual(expectedPoint, actualPoint); + } + + public IEnumerable MaximumTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Point2(), new Point2()).SetName( + "The maximum coordinates of two zero points is the coordinates of the zero point."); + yield return + new TestCaseData(new Point2(float.MaxValue, float.MinValue), new Point2(int.MaxValue, int.MinValue), + new Point2(float.MaxValue, int.MinValue)).SetName( + "The maximum coordaintes of two non-zero points is the expected coordinates."); + } + } + + [Test] + [TestCaseSource(nameof(MaximumTestCases))] + public void Maximum(Point2 point1, Point2 point2, Point2 expectedPoint) + { + var actualPoint = Point2.Maximum(point1, point2); + Assert.AreEqual(expectedPoint, actualPoint); + } + + public IEnumerable EqualityTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Point2(), true).SetName("Two zero points are equal."); + yield return + new TestCaseData(new Point2(float.MinValue, float.MaxValue), + new Point2(float.MaxValue, float.MinValue), false).SetName( + "Two different non-zero points are not equal."); + yield return + new TestCaseData( + new Point2(float.MinValue, float.MaxValue), new Point2(float.MinValue, float.MaxValue), true) + .SetName( + "Two identical non-zero points are equal."); + } + } + + [Test] + [TestCaseSource(nameof(EqualityTestCases))] + public void Equality(Point2 point1, Point2 point2, bool expectedToBeEqual) + { + Assert.IsTrue(Equals(point1, point2) == expectedToBeEqual); + Assert.IsTrue(point1 == point2 == expectedToBeEqual); + Assert.IsFalse(point1 == point2 != expectedToBeEqual); + Assert.IsTrue(point1.Equals(point2) == expectedToBeEqual); + + if (expectedToBeEqual) + Assert.AreEqual(point1.GetHashCode(), point2.GetHashCode()); + } + + public IEnumerable InequalityTestCases + { + get + { + yield return + new TestCaseData(new Point2(), null, false).SetName("A point is not equal to a null object."); + yield return + new TestCaseData(new Point2(), new object(), false).SetName( + "A point is not equal to an instantiated object."); + } + } + + [Test] + [TestCaseSource(nameof(InequalityTestCases))] + public void Inequality(Point2 point, object obj, bool expectedToBeEqual) + { + Assert.IsTrue(point.Equals(obj) == expectedToBeEqual); + } + + public IEnumerable HashCodeTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Point2(), true).SetName( + "Two zero points have the same hash code."); + yield return + new TestCaseData(new Point2(50, 50), new Point2(50, 50), true).SetName( + "Two indentical non-zero points have the same hash code."); + yield return + new TestCaseData(new Point2(0, 0), new Point2(50, 50), false).SetName( + "Two different non-zero points do not have the same hash code."); + } + } + + [Test] + [TestCaseSource(nameof(HashCodeTestCases))] + public void HashCode(Point2 point1, Point2 point2, bool expectedThatHashCodesAreEqual) + { + var hashCode1 = point1.GetHashCode(); + var hashCode2 = point2.GetHashCode(); + if (expectedThatHashCodesAreEqual) + Assert.AreEqual(hashCode1, hashCode2); + else + Assert.AreNotEqual(hashCode1, hashCode2); + } + + public IEnumerable ToVectorTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Vector2()).SetName( + "The zero point converted to a vector is the zero vector."); + yield return + new TestCaseData(new Point2(float.MinValue, float.MaxValue), + new Vector2(float.MinValue, float.MaxValue)).SetName( + "A non-zero point converted to a vector is the expected vector."); + } + } + + [Test] + [TestCaseSource(nameof(ToVectorTestCases))] + public void ToVector(Point2 point, Vector2 expectedVector) + { + var actualVector = (Vector2)point; + Assert.AreEqual(expectedVector, actualVector); + } + + public IEnumerable FromVectorTestCases + { + get + { + yield return + new TestCaseData(new Vector2(), new Point2()).SetName( + "The zero vector converted to a point is the zero point."); + yield return + new TestCaseData(new Vector2(float.MinValue, float.MaxValue), + new Point2(float.MinValue, float.MaxValue)).SetName( + "A non-zero vector converted to a point is the expected point."); + } + } + + [Test] + [TestCaseSource(nameof(FromVectorTestCases))] + public void FromVector(Vector2 vector, Point2 expectedPoint) + { + var actualPoint = (Point2)vector; + Assert.AreEqual(expectedPoint, actualPoint); + } + + public IEnumerable StringCases + { + get + { + yield return + new TestCaseData(new Point2(), + string.Format(CultureInfo.CurrentCulture, "({0}, {1})", 0, 0)).SetName( + "The zero point has the expected string representation using the current culture."); + yield return new TestCaseData(new Point2(5.1f, -5.123f), + string.Format(CultureInfo.CurrentCulture, "({0}, {1})", 5.1f, -5.123f)).SetName( + "A non-zero point has the expected string representation using the current culture."); + } + } + + [Test] + [TestCaseSource(nameof(StringCases))] + public void String(Point2 point, string expectedString) + { + var actualString = point.ToString(); + Assert.AreEqual(expectedString, actualString); + } + } +} diff --git a/Source/Tests/MonoGame.Extended.Tests/Primitives/Ray2DTests.cs b/Source/Tests/MonoGame.Extended.Tests/Primitives/Ray2DTests.cs new file mode 100644 index 00000000..454b6da8 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Primitives/Ray2DTests.cs @@ -0,0 +1,217 @@ +using System.Collections.Generic; +using System.Globalization; +using Microsoft.Xna.Framework; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Primitives +{ + [TestFixture] + public class Ray2DTests + { + public IEnumerable ConstructorTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Vector2()).SetName( + "The degenerate ray has the expected position and direction."); + yield return + new TestCaseData(new Point2(5, 5), new Vector2(15, 15)).SetName( + "A non-degenerate ray has the expected position and direction."); + } + } + + [Test] + [TestCaseSource(nameof(ConstructorTestCases))] + public void Constructor(Point2 position, Vector2 direction) + { + var ray = new Ray2D(position, direction); + Assert.AreEqual(position, ray.Position); + Assert.AreEqual(direction, ray.Direction); + } + + public IEnumerable PositionDirectionTestCases + { + get + { + yield return + new TestCaseData(new Ray2D(), new Point2(), new Vector2()).SetName( + "The degenerate ray has the expected position and direction."); + yield return + new TestCaseData(new Ray2D(new Point2(5, 5), new Vector2(15, 15)), new Point2(5, 5), + new Vector2(15, 15)).SetName + ( + "A non-degenerate ray has the expected position and direction."); + } + } + + [Test] + [TestCaseSource(nameof(PositionDirectionTestCases))] + public void PositionDirection(Ray2D ray, Point2 expectedPosition, Vector2 expecetedDirection) + { + Assert.AreEqual(expectedPosition, ray.Position); + Assert.AreEqual(expecetedDirection, ray.Direction); + + ray.Position.X = 10; + ray.Position.Y = 10; + Assert.AreEqual(new Point2(10, 10), ray.Position); + + ray.Direction.X = -10.123f; + ray.Direction.Y = 10.123f; + Assert.AreEqual(new Vector2(-10.123f, 10.123f), ray.Direction); + } + + public IEnumerable IntersectsBoundingRectangleTestCases + { + get + { + yield return + new TestCaseData(new Ray2D(), new BoundingRectangle(), true, Point2.Zero, Point2.Zero).SetName( + "The degenerate ray intersects the empty bounding box."); + yield return + new TestCaseData(new Ray2D(new Point2(-75, -75), new Vector2(75, -75)), + new BoundingRectangle(new Point2(), new Size2(50, 50)), false, Point2.NaN, Point2.NaN).SetName( + "A non-degenerate ray that does not cross a non-empty bounding box does not intersect the bounding box."); + yield return + new TestCaseData(new Ray2D(new Point2(0, 0), new Vector2(25, 0)), new BoundingRectangle(new Point2(), new Size2(50, 50)), + true, new Point2(0, 0), new Point2(50, 0)).SetName( + "A non-degenerate ray starting from inside a non-empty bounding box intersects the bounding box."); + yield return + new TestCaseData(new Ray2D(new Point2(-100, 0), new Vector2(100, 0)), + new BoundingRectangle(new Point2(), new Size2(50, 50)), + true, new Point2(-50, 0), new Point2(50, 0)).SetName( + "A non-degenerate ray crossing a non-empty bounding box intersects the bounding box."); + } + } + + [Test] + [TestCaseSource(nameof(IntersectsBoundingRectangleTestCases))] + public void IntersectsBoundingRectangle(Ray2D ray, BoundingRectangle boundingRectangle, bool expectedResult, + Point2 firstExpectedIntersectionPoint, Point2 secondExpectedIntersectionPoint) + { + float rayNearDistance, rayFarDistance; + var actualResult = ray.Intersects(boundingRectangle, out rayNearDistance, out rayFarDistance); + Assert.AreEqual(expectedResult, actualResult); + + if (actualResult) + { + var firstActualIntersectionPoint = ray.Position + ray.Direction * rayNearDistance; + Assert.AreEqual(firstExpectedIntersectionPoint, firstActualIntersectionPoint); + var secondActualIntersectionPoint = ray.Position + ray.Direction * rayFarDistance; + Assert.AreEqual(secondExpectedIntersectionPoint, secondActualIntersectionPoint); + } + else + { + Assert.IsTrue(float.IsNaN(rayNearDistance)); + Assert.IsTrue(float.IsNaN(rayFarDistance)); + } + } + + public IEnumerable EqualityTestCases + { + get + { + yield return + new TestCaseData(new Ray2D(), new Ray2D(), true).SetName("Two degenerate rays are equal."); + yield return + new TestCaseData(new Ray2D(new Point2(float.MinValue, float.MaxValue), + new Vector2(float.MaxValue, float.MinValue)), new Ray2D(new Point2(float.MaxValue, float.MinValue), + new Vector2(float.MaxValue, float.MinValue)), false).SetName( + "Two different non-degenerate rays are not equal."); + yield return + new TestCaseData( + new Ray2D(new Point2(float.MinValue, float.MaxValue), + new Vector2(float.MinValue, float.MaxValue)), new Ray2D(new Point2(float.MinValue, float.MaxValue), + new Vector2(float.MinValue, float.MaxValue)), true) + .SetName( + "Two identical non-degenerate rays are equal."); + } + } + + [Test] + [TestCaseSource(nameof(EqualityTestCases))] + public void Equality(Ray2D ray1, Ray2D ray2, bool expectedToBeEqual) + { + Assert.IsTrue(Equals(ray1, ray2) == expectedToBeEqual); + Assert.IsTrue(ray1 == ray2 == expectedToBeEqual); + Assert.IsFalse(ray1 == ray2 != expectedToBeEqual); + Assert.IsTrue(ray1.Equals(ray2) == expectedToBeEqual); + + if (expectedToBeEqual) + Assert.AreEqual(ray1.GetHashCode(), ray2.GetHashCode()); + } + + public IEnumerable InequalityTestCases + { + get + { + yield return + new TestCaseData(new Ray2D(), null, false).SetName("A ray is not equal to a null object."); + yield return + new TestCaseData(new Ray2D(), new object(), false).SetName( + "A ray is not equal to an instantiated object."); + } + } + + [Test] + [TestCaseSource(nameof(InequalityTestCases))] + public void Inequality(Ray2D ray, object obj, bool expectedToBeEqual) + { + Assert.IsTrue(ray.Equals(obj) == expectedToBeEqual); + } + + public IEnumerable HashCodeTestCases + { + get + { + yield return + new TestCaseData(new Ray2D(), new Ray2D(), true).SetName( + "Two degenerate rays have the same hash code."); + yield return + new TestCaseData(new Ray2D(new Point2(50, 50), new Vector2(50, 50)), + new Ray2D(new Point2(50, 50), new Vector2(50, 50)), true).SetName( + "Two indentical non-zero points have the same hash code."); + yield return + new TestCaseData(new Ray2D(new Point2(0, 0), new Vector2(50, 50)), + new Ray2D(new Point2(50, 50), new Vector2(50, 50)), false).SetName( + "Two different non-zero points do not have the same hash code."); + } + } + + [Test] + [TestCaseSource(nameof(HashCodeTestCases))] + public void HashCode(Ray2D ray1, Ray2D ray2, bool expectedThatHashCodesAreEqual) + { + var hashCode1 = ray1.GetHashCode(); + var hashCode2 = ray2.GetHashCode(); + if (expectedThatHashCodesAreEqual) + Assert.AreEqual(hashCode1, hashCode2); + else + Assert.AreNotEqual(hashCode1, hashCode2); + } + + public IEnumerable StringCases + { + get + { + yield return + new TestCaseData(new Ray2D(), + string.Format(CultureInfo.CurrentCulture, "Position: {0}, Direction: {1}", new Point2(), + new Vector2())).SetName( + "The degenerate ray has the expected string representation using the current culture."); + yield return new TestCaseData(new Ray2D(new Point2(5.1f, -5.123f), new Vector2(0, 1)), + string.Format(CultureInfo.CurrentCulture, "Position: {0}, Direction: {1}", new Point2(5.1f, -5.123f), + new Vector2(0, 1))).SetName( + "A non-degenerate ray has the expected string representation using the current culture."); + } + } + + [Test] + [TestCaseSource(nameof(StringCases))] + public void String(Ray2D ray, string expectedString) + { + var actualString = ray.ToString(); + Assert.AreEqual(expectedString, actualString); + } + } +} diff --git a/Source/Tests/MonoGame.Extended.Tests/Primitives/RectangleFTests.cs b/Source/Tests/MonoGame.Extended.Tests/Primitives/RectangleFTests.cs new file mode 100644 index 00000000..51d6eb24 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Primitives/RectangleFTests.cs @@ -0,0 +1,45 @@ +using Microsoft.Xna.Framework; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Primitives +{ + [TestFixture] + public class RectangleFTests + { + [Test] + public void RectangleF_Intersects_Test() + { + var rect1 = new RectangleF(0, 0, 32, 32); + var rect2 = new RectangleF(32, 32, 32, 32); + + Assert.IsFalse(rect1.Intersects(rect2)); + } + + [Test] + public void Rectangle_Intersects_Test() + { + var rect1 = new Rectangle(0, 0, 32, 32); + var rect2 = new Rectangle(32, 32, 32, 32); + + Assert.IsFalse(rect1.Intersects(rect2)); + } + + [Test] + public void PassVector2AsConstructorParameter_Test() + { + var rect1 = new RectangleF(new Vector2(0, 0), new Size2(12.34f, 56.78f)); + var rect2 = new RectangleF(new Vector2(0, 0), new Vector2(12.34f, 56.78f)); + + Assert.AreEqual(rect1, rect2); + } + + [Test] + public void PassPointAsConstructorParameter_Test() + { + var rect1 = new RectangleF(new Vector2(0, 0), new Size2(12, 56)); + var rect2 = new RectangleF(new Vector2(0, 0), new Size2(12, 56)); + + Assert.AreEqual(rect1, rect2); + } + } +} \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tests/Primitives/Segment2DTests.cs b/Source/Tests/MonoGame.Extended.Tests/Primitives/Segment2DTests.cs new file mode 100644 index 00000000..ead57b2a --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Primitives/Segment2DTests.cs @@ -0,0 +1,251 @@ +using System.Collections.Generic; +using System.Globalization; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Primitives +{ + public class Segment2DTests + { + public IEnumerable ConstructorTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Point2()).SetName( + "The empty segment has expected starting and ending points."); + yield return + new TestCaseData( + new Point2(float.MaxValue, float.MinValue), + new Point2(int.MaxValue, int.MinValue)).SetName( + "A non-empty segment has the expected starting and ending points."); + } + } + + [Test] + [TestCaseSource(nameof(ConstructorTestCases))] + public void Constructor(Point2 startingPoint, Point2 endingPoint) + { + var segment = new Segment2D(startingPoint, endingPoint); + Assert.AreEqual(startingPoint, segment.Start); + Assert.AreEqual(endingPoint, segment.End); + } + + public IEnumerable ClosestPointTestCases + { + get + { + yield return + new TestCaseData(new Segment2D(), new Point2(), new Point2()).SetName( + "The closest point on the empty segment to the zero point is the zero point."); + yield return + new TestCaseData(new Segment2D(new Point2(0, 0), new Point2(200, 0)), new Point2(-100, 200), + new Point2(0, 0)).SetName( + "The closest point on a non-empty segment to a point which is projected beyond the start of the segment is the segment's starting point.") + ; + yield return + new TestCaseData(new Segment2D(new Point2(0, 0), new Point2(200, 0)), new Point2(400, 200), + new Point2(200, 0)).SetName( + "The closest point on a non-empty segment to a point which is projected beyond the end of the segment is the segment's ending point.") + ; + yield return + new TestCaseData(new Segment2D(new Point2(0, 0), new Point2(200, 0)), new Point2(100, 200), + new Point2(100, 0)).SetName( + "The closest point on a non-empty segment to a point which is projected inside the segment is the projected point.") + ; + } + } + + [Test] + [TestCaseSource(nameof(ClosestPointTestCases))] + public void ClosestPoint(Segment2D segment, Point2 point, Point2 expectedClosestPoint) + { + var actualClosestPoint = segment.ClosestPointTo(point); + Assert.AreEqual(expectedClosestPoint, actualClosestPoint); + } + + public IEnumerable SquaredDistanceToPointTestCases + { + get + { + yield return + new TestCaseData(new Segment2D(), new Point2(), 0).SetName( + "The squared distance of the zero point to the empty segment is 0."); + yield return + new TestCaseData(new Segment2D(new Point2(0, 0), new Point2(20, 0)), new Point2(-10, 20), 500) + .SetName( + "The squared distance of a point projected beyond the start of a non-empty segment is the squared distance from the segment's starting point to the point.") + ; + yield return + new TestCaseData(new Segment2D(new Point2(0, 0), new Point2(20, 0)), new Point2(40, 20), 400) + .SetName( + "The squared distance of a point projected beyond the end of a non-empty segment is the squared distance from the segment's ending point to the point.") + ; + yield return + new TestCaseData(new Segment2D(new Point2(0, 0), new Point2(20, 0)), new Point2(10, 25), 625).SetName + ( + "The squared distance of a point projected inside a non-empty segment is the squared distance from the projected point to the point.") + ; + } + } + + [Test] + [TestCaseSource(nameof(SquaredDistanceToPointTestCases))] + public void SquaredDistanceToPoint(Segment2D segment, Point2 point, + float expectedDistance) + { + var actualDistance = segment.SquaredDistanceTo(point); + Assert.AreEqual(expectedDistance, actualDistance); + } + + public IEnumerable IntersectsBoundingRectangleTestCases + { + get + { + yield return + new TestCaseData(new Segment2D(), new BoundingRectangle(), true, Point2.Zero).SetName( + "The empty segment intersects the empty bounding box."); + yield return + new TestCaseData(new Segment2D(new Point2(-75, -75), new Point2(75, -75)), + new BoundingRectangle(new Point2(), new Size2(50, 50)), false, Point2.NaN).SetName( + "A non-empty segment outside a non-empty bounding box does not intersect the bounding box."); + yield return + new TestCaseData(new Segment2D(new Point2(0, 0), new Point2(25, 0)), new BoundingRectangle(new Point2(), new Size2(50, 50)), + true, new Point2(0, 0)).SetName( + "A non-empty segment inside a non-empty bounding box intersects the bounding box."); + yield return + new TestCaseData(new Segment2D(new Point2(-100, 0), new Point2(100, 0)), + new BoundingRectangle(new Point2(), new Size2(50, 50)), + true, new Point2(-50, 0)).SetName( + "A non-empty segment crossing a non-empty bounding box intersects the bounding box."); + } + } + + [Test] + [TestCaseSource(nameof(IntersectsBoundingRectangleTestCases))] + public void IntersectsBoundingRectangle(Segment2D segment, BoundingRectangle boundingRectangle, bool expectedResult, + Point2 expectedIntersectionPoint) + { + Point2 actualIntersectionPoint; + var actualResult = segment.Intersects(boundingRectangle, out actualIntersectionPoint); + Assert.AreEqual(expectedResult, actualResult); + + if (actualResult) + { + Assert.AreEqual(expectedIntersectionPoint, actualIntersectionPoint); + } + else + { + Assert.IsTrue(float.IsNaN(actualIntersectionPoint.X)); + Assert.IsTrue(float.IsNaN(actualIntersectionPoint.Y)); + } + } + + public IEnumerable EqualityTestCases + { + get + { + yield return + new TestCaseData(new Segment2D(), new Segment2D(), true).SetName("Empty segments are equal.") + ; + yield return + new TestCaseData( + new Segment2D(new Point2(0, 0), new Point2(float.MaxValue, float.MinValue)), + new Segment2D(new Point2(0, 0), + new Point2(float.MinValue, float.MaxValue)), false).SetName( + "Two different non-empty segments are not equal."); + yield return + new TestCaseData( + new Segment2D(new Point2(0, 0), new Point2(float.MinValue, float.MaxValue)), + new Segment2D(new Point2(0, 0), + new Point2(float.MinValue, float.MaxValue)), true).SetName( + "Two identical non-empty segments are equal."); + } + } + + [Test] + [TestCaseSource(nameof(EqualityTestCases))] + public void Equality(Segment2D segment1, Segment2D segment2, bool expectedToBeEqual) + { + Assert.IsTrue(Equals(segment1, segment2) == expectedToBeEqual); + Assert.IsTrue(segment1 == segment2 == expectedToBeEqual); + Assert.IsFalse(segment1 == segment2 != expectedToBeEqual); + Assert.IsTrue(segment1.Equals(segment2) == expectedToBeEqual); + + if (expectedToBeEqual) + Assert.AreEqual(segment1.GetHashCode(), segment2.GetHashCode()); + } + + public IEnumerable InequalityTestCases + { + get + { + yield return + new TestCaseData(new Segment2D(), null, false).SetName("A segment is not equal to a null object."); + yield return + new TestCaseData(new Segment2D(), new object(), false).SetName( + "A segment is not equal to an instantiated object."); + } + } + + [Test] + [TestCaseSource(nameof(InequalityTestCases))] + public void Inequality(Segment2D segment, object obj, bool expectedToBeEqual) + { + Assert.IsTrue(segment.Equals(obj) == expectedToBeEqual); + } + + public IEnumerable HashCodeTestCases + { + get + { + yield return + new TestCaseData(new Segment2D(), new Segment2D(), true).SetName( + "Two empty segments have the same hash code."); + yield return + new TestCaseData(new Segment2D(new Point2(0, 0), new Point2(50, 50)), + new Segment2D(new Point2(0, 0), new Point2(50, 50)), true).SetName( + "Two indentical non-empty segments have the same hash code."); + yield return + new TestCaseData(new Segment2D(new Point2(0, 0), new Point2(50, 50)), + new Segment2D(new Point2(50, 50), new Point2(50, 50)), false).SetName( + "Two different non-empty segments do not have the same hash code."); + } + } + + [Test] + [TestCaseSource(nameof(HashCodeTestCases))] + public void HashCode(Segment2D segment1, Segment2D segment2, bool expectedThatHashCodesAreEqual) + { + var hashCode1 = segment1.GetHashCode(); + var hashCode2 = segment2.GetHashCode(); + if (expectedThatHashCodesAreEqual) + Assert.AreEqual(hashCode1, hashCode2); + else + Assert.AreNotEqual(hashCode1, hashCode2); + } + + public IEnumerable StringCases + { + get + { + yield return + new TestCaseData(new Segment2D(), + string.Format(CultureInfo.CurrentCulture, "{0} -> {1}", new Point2(), + new Point2())).SetName( + "The empty segment has the expected string representation using the current culture."); + yield return new TestCaseData(new Segment2D(new Point2(5.1f, -5.123f), new Point2(5.4f, -5.4123f)), + string.Format(CultureInfo.CurrentCulture, "{0} -> {1}", new Point2(5.1f, -5.123f), + new Point2(5.4f, -5.4123f))).SetName( + "A non-empty segment has the expected string representation using the current culture."); + } + } + + [Test] + [TestCaseSource(nameof(StringCases))] + public void String(Segment2D segment, string expectedString) + { + var actualString = segment.ToString(); + Assert.AreEqual(expectedString, actualString); + } + } +} diff --git a/Source/Tests/MonoGame.Extended.Tests/Primitives/Size2Tests.cs b/Source/Tests/MonoGame.Extended.Tests/Primitives/Size2Tests.cs new file mode 100644 index 00000000..46efd51a --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/Primitives/Size2Tests.cs @@ -0,0 +1,304 @@ +using System.Collections.Generic; +using System.Globalization; +using Microsoft.Xna.Framework; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests.Primitives +{ + [TestFixture] + public class Size2Tests + { + public IEnumerable ConstructorTestCases + { + get + { + yield return + new TestCaseData(0, 0).SetName( + "The empty size has the expected dimensions."); + yield return + new TestCaseData(float.MinValue, float.MaxValue).SetName + ( + "A non-empty size has the expected dimensions."); + } + } + + [Test] + [TestCaseSource(nameof(ConstructorTestCases))] + public void Constructor(float width, float height) + { + var size = new Size2(width, height); + Assert.AreEqual(width, size.Width); + Assert.AreEqual(height, size.Height); + } + + public IEnumerable DimensionsTestCases + { + get + { + yield return + new TestCaseData(new Size2(), 0, 0).SetName( + "The empty size has the expected dimensions."); + yield return + new TestCaseData(new Size2(float.MinValue, float.MaxValue), float.MinValue, float.MaxValue).SetName + ( + "A non-empty size has the expected dimensions."); + } + } + + [Test] + [TestCaseSource(nameof(DimensionsTestCases))] + public void Dimensions(Size2 size, float expectedWidth, float expecetedHeight) + { + Assert.AreEqual(expectedWidth, size.Width); + Assert.AreEqual(expecetedHeight, size.Height); + + size.Width = 10; + Assert.AreEqual(10, size.Width); + + size.Height = -10.123f; + Assert.AreEqual(-10.123f, size.Height); + } + + public IEnumerable AdditionTestCases + { + get + { + yield return + new TestCaseData(new Size2(), new Size2(), new Size2()).SetName( + "The addition of two empty sizes is the empty size."); + yield return + new TestCaseData(new Size2(5, 5), new Size2(15, 15), new Size2(20, 20)).SetName( + "The addition of two non-empty sizes is the expected size."); + } + } + + [Test] + [TestCaseSource(nameof(AdditionTestCases))] + public void Addition(Size2 size1, Size2 size2, Size2 expectedSize) + { + Assert.AreEqual(expectedSize, size1 + size2); + Assert.AreEqual(expectedSize, Size2.Add(size1, size2)); + } + + public IEnumerable SubtractionTestCases + { + get + { + yield return + new TestCaseData(new Size2(), new Size2(), new Size2()).SetName( + "The subtraction of two empty sizes is the empty size."); + yield return + new TestCaseData(new Size2(5, 5), new Size2(15, 15), new Size2(-10, -10)).SetName( + "The subtraction of two non-empty sizes is the expected size."); + } + } + + [Test] + [TestCaseSource(nameof(SubtractionTestCases))] + public void Subtraction(Size2 size1, Size2 size2, Size2 expectedSize) + { + Assert.AreEqual(expectedSize, size1 - size2); + Assert.AreEqual(expectedSize, Size2.Subtract(size1, size2)); + } + + public IEnumerable EqualityTestCases + { + get + { + yield return + new TestCaseData(new Size2(), new Size2(), true).SetName("Two empty sizes are equal."); + yield return + new TestCaseData(new Size2(float.MinValue, float.MaxValue), + new Size2(float.MaxValue, float.MinValue), false).SetName( + "Two different non-empty sizes are not equal."); + yield return + new TestCaseData( + new Size2(float.MinValue, float.MaxValue), new Size2(float.MinValue, float.MaxValue), true) + .SetName( + "Two identical non-empty sizes are equal."); + } + } + + [Test] + [TestCaseSource(nameof(EqualityTestCases))] + public void Equality(Size2 size1, Size2 size2, bool expectedToBeEqual) + { + Assert.IsTrue(Equals(size1, size2) == expectedToBeEqual); + Assert.IsTrue(size1 == size2 == expectedToBeEqual); + Assert.IsFalse(size1 == size2 != expectedToBeEqual); + Assert.IsTrue(size1.Equals(size2) == expectedToBeEqual); + + if (expectedToBeEqual) + Assert.AreEqual(size1.GetHashCode(), size2.GetHashCode()); + } + + public IEnumerable InequalityTestCases + { + get + { + yield return + new TestCaseData(new Size2(), null, false).SetName("A size is not equal to a null object."); + yield return + new TestCaseData(new Size2(), new object(), false).SetName( + "A size is not equal to an instantiated object."); + } + } + + [Test] + [TestCaseSource(nameof(InequalityTestCases))] + public void Inequality(Size2 size, object obj, bool expectedToBeEqual) + { + Assert.IsTrue(size.Equals(obj) == expectedToBeEqual); + } + + public IEnumerable HashCodeTestCases + { + get + { + yield return + new TestCaseData(new Size2(), new Size2(), true).SetName( + "Two empty sizes have the same hash code."); + yield return + new TestCaseData(new Size2(50, 50), new Size2(50, 50), true).SetName( + "Two indentical non-empty sizes have the same hash code."); + yield return + new TestCaseData(new Size2(0, 0), new Size2(50, 50), false).SetName( + "Two different non-empty sizes do not have the same hash code."); + } + } + + [Test] + [TestCaseSource(nameof(HashCodeTestCases))] + public void HashCode(Size2 size1, Size2 size2, bool expectedThatHashCodesAreEqual) + { + var hashCode1 = size1.GetHashCode(); + var hashCode2 = size2.GetHashCode(); + if (expectedThatHashCodesAreEqual) + Assert.AreEqual(hashCode1, hashCode2); + else + Assert.AreNotEqual(hashCode1, hashCode2); + } + + public IEnumerable ToPointTestCases + { + get + { + yield return + new TestCaseData(new Size2(), new Point2()).SetName("The empty size converted to a point is the zero point."); + yield return + new TestCaseData(new Size2(float.MinValue, float.MaxValue), new Point2(float.MinValue, float.MaxValue)).SetName( + "A non-empty size converted to a point is the expected point."); + } + } + + [Test] + [TestCaseSource(nameof(ToPointTestCases))] + public void ToPoint(Size2 size, Point2 expectedPoint) + { + var actualPoint = (Point2)size; + Assert.AreEqual(expectedPoint, actualPoint); + } + + public IEnumerable FromPointTestCases + { + get + { + yield return + new TestCaseData(new Point2(), new Size2()).SetName("The zero point converted to a size is the empty size."); + yield return + new TestCaseData(new Point2(float.MinValue, float.MaxValue), new Size2(float.MinValue, float.MaxValue)).SetName( + "A non-zero point converted to a size is the expected size."); + } + } + + [Test] + [TestCaseSource(nameof(FromPointTestCases))] + public void FromPoint(Point2 point, Size2 expectedSize) + { + var actualSize = (Size2)point; + Assert.AreEqual(expectedSize, actualSize); + } + + public IEnumerable ToVectorTestCases + { + get + { + yield return + new TestCaseData(new Size2(), new Vector2()).SetName("The empty size converted to a vector is the zero vector."); + yield return + new TestCaseData(new Size2(float.MinValue, float.MaxValue), new Vector2(float.MinValue, float.MaxValue)).SetName( + "A non-empty size converted to a vector is the expected vector."); + } + } + + [Test] + [TestCaseSource(nameof(ToVectorTestCases))] + public void ToVector(Size2 size, Vector2 expectedVector) + { + var actualVector = (Vector2)size; + Assert.AreEqual(expectedVector, actualVector); + } + + public IEnumerable FromVectorTestCases + { + get + { + yield return + new TestCaseData(new Vector2(), new Size2()).SetName("The zero vector converted to a size is the empty size."); + yield return + new TestCaseData(new Vector2(float.MinValue, float.MaxValue), new Size2(float.MinValue, float.MaxValue)).SetName( + "A non-zero vector converted to a size is the expected size."); + } + } + + [Test] + [TestCaseSource(nameof(FromVectorTestCases))] + public void FromVector(Vector2 vector, Size2 expectedSize) + { + var actualSize = (Size2)vector; + Assert.AreEqual(expectedSize, actualSize); + } + + //public IEnumerable FromSizeTestCases + //{ + // get + // { + // yield return + // new TestCaseData(new Size2(), new Size2()).SetName("The empty size converted to a size is the empty size."); + // yield return + // new TestCaseData(new Size2(int.MinValue, int.MaxValue), new Size2(int.MinValue, int.MaxValue)).SetName( + // "A non-zero size converted to a size is the expected size."); + // } + //} + + //[Test] + //[TestCaseSource(nameof(FromSizeTestCases))] + //public void FromSize(Size2 size, Size2 expectedSize) + //{ + // var actualSize = (Size2)size; + // Assert.AreEqual(expectedSize, actualSize); + //} + + public IEnumerable StringCases + { + get + { + yield return + new TestCaseData(new Size2(), + string.Format(CultureInfo.CurrentCulture, "Width: {0}, Height: {1}", 0, 0)).SetName( + "The empty size has the expected string representation using the current culture."); + yield return new TestCaseData(new Size2(5.1f, -5.123f), + string.Format(CultureInfo.CurrentCulture, "Width: {0}, Height: {1}", 5.1f, -5.123f)).SetName( + "A non-empty size has the expected string representation using the current culture."); + } + } + + [Test] + [TestCaseSource(nameof(StringCases))] + public void String(Size2 size, string expectedString) + { + var actualString = size.ToString(); + Assert.AreEqual(expectedString, actualString); + } + } +} diff --git a/Source/MonoGame.Extended.Tests/Properties/AssemblyInfo.cs b/Source/Tests/MonoGame.Extended.Tests/Properties/AssemblyInfo.cs similarity index 100% rename from Source/MonoGame.Extended.Tests/Properties/AssemblyInfo.cs rename to Source/Tests/MonoGame.Extended.Tests/Properties/AssemblyInfo.cs diff --git a/Source/Tests/MonoGame.Extended.Tests/RangeTests.cs b/Source/Tests/MonoGame.Extended.Tests/RangeTests.cs new file mode 100644 index 00000000..4a6ef0d8 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/RangeTests.cs @@ -0,0 +1,102 @@ +using System; +using NUnit.Framework; + +namespace MonoGame.Extended.Tests +{ + [TestFixture] + public class RangeTests + { + [Test] + public void ConstructorTest() + { + //can pass min < max + Assert.DoesNotThrow(() => new Range(10, 100)); + //can't pass min > max + Assert.Throws(() => new Range(100, 10)); + //can pass min == max + Assert.DoesNotThrow(() => new Range(10, 10)); + } + + [Test] + public void DegenerateTest() + { + var proper = new Range(0, 1); + Assert.IsTrue(proper.IsProper); + Assert.IsFalse(proper.IsDegenerate); + + var degenerate = new Range(1, 1); + Assert.IsFalse(degenerate.IsProper); + Assert.IsTrue(degenerate.IsDegenerate); + } + + [Test] + public void IntegerTest() + { + var range = new Range(10, 100); + + Assert.AreEqual(range.Min, 10); + Assert.AreEqual(range.Max, 100); + + for (var i = 10; i <= 100; i++) + { + Assert.IsTrue(range.IsInBetween(i)); + } + + Assert.IsFalse(range.IsInBetween(9)); + Assert.IsFalse(range.IsInBetween(101)); + Assert.IsFalse(range.IsInBetween(10, true)); + Assert.IsFalse(range.IsInBetween(100, maxValueExclusive: true)); + } + + [Test] + public void FloatTest() + { + var range = new Range(0f, 1f); + + Assert.AreEqual(range.Min, 0f); + Assert.AreEqual(range.Max, 1f); + + for (float i = 0; i <= 1f; i += 0.001f) + { + Assert.IsTrue(range.IsInBetween(i)); + } + + Assert.IsFalse(range.IsInBetween(-float.Epsilon)); + Assert.IsFalse(range.IsInBetween(1.00001f)); + + Assert.IsFalse(range.IsInBetween(0f, true)); + Assert.IsFalse(range.IsInBetween(1f, maxValueExclusive: true)); + } + + [Test] + public void OperatorTest() + { + var rangeA = new Range(0, 1); + var rangeB = new Range(0, 1); + var rangeC = new Range(1, 2); + var rangeD = new Range(0, 1); + + Assert.IsTrue(rangeA == rangeB); + Assert.IsFalse(rangeA == rangeC); + + Assert.IsFalse(rangeA != rangeB); + Assert.IsTrue(rangeA != rangeC); + + Assert.IsTrue(rangeA.Equals(rangeB)); + Assert.IsFalse(rangeA.Equals(rangeC)); + Assert.IsFalse(rangeA.Equals(rangeD)); + + Range implict = 1; + Assert.AreEqual(implict.Max, 1); + Assert.AreEqual(implict.Min, 1); + } + + [Test] + public void ToStringTest() + { + var range = new Range(0, 1); + + Assert.AreEqual(range.ToString(), "Range [0 1]"); + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs b/Source/Tests/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs similarity index 81% rename from Source/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs rename to Source/Tests/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs index 9ea7b8ef..e41ffe53 100644 --- a/Source/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs +++ b/Source/Tests/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs @@ -18,7 +18,7 @@ namespace MonoGame.Extended.Tests.Shapes new Vector2(0, 10) }; - var polygon = new PolygonF(vertices); + var polygon = new Polygon(vertices); Assert.IsTrue(polygon.Contains(new Vector2(5, 5))); Assert.IsTrue(polygon.Contains(new Vector2(0.01f, 0.01f))); @@ -38,7 +38,7 @@ namespace MonoGame.Extended.Tests.Shapes new Vector2(0, 10) }; - var polygon = new PolygonF(vertices); + var polygon = new Polygon(vertices); polygon.Offset(new Vector2(2, 3)); Assert.AreEqual(new Vector2(2, 3), polygon.Vertices[0]); @@ -57,13 +57,13 @@ namespace MonoGame.Extended.Tests.Shapes new Vector2(-5, 10) }; - var polygon = new PolygonF(vertices); + var polygon = new Polygon(vertices); polygon.Rotate(MathHelper.ToRadians(90)); const float tolerance = 0.01f; - Assert.IsTrue(new Vector2(5, -5).EqualsWithTolerance(polygon.Vertices[0], tolerance)); - Assert.IsTrue(new Vector2(-10, 5).EqualsWithTolerance(polygon.Vertices[1], tolerance)); - Assert.IsTrue(new Vector2(-10, -5).EqualsWithTolerance(polygon.Vertices[2], tolerance)); + Assert.IsTrue(new Vector2(5, -5).EqualsWithTolerence(polygon.Vertices[0], tolerance)); + Assert.IsTrue(new Vector2(-10, 5).EqualsWithTolerence(polygon.Vertices[1], tolerance)); + Assert.IsTrue(new Vector2(-10, -5).EqualsWithTolerence(polygon.Vertices[2], tolerance)); } [Test] @@ -76,13 +76,13 @@ namespace MonoGame.Extended.Tests.Shapes new Vector2(-1, 1) }; - var polygon = new PolygonF(vertices); + var polygon = new Polygon(vertices); polygon.Scale(new Vector2(1, -0.5f)); const float tolerance = 0.01f; - Assert.IsTrue(new Vector2(0, -0.5f).EqualsWithTolerance(polygon.Vertices[0], tolerance), "0"); - Assert.IsTrue(new Vector2(2f, 0.5f).EqualsWithTolerance(polygon.Vertices[1], tolerance), "1"); - Assert.IsTrue(new Vector2(-2f, 0.5f).EqualsWithTolerance(polygon.Vertices[2], tolerance), "2"); + Assert.IsTrue(new Vector2(0, -0.5f).EqualsWithTolerence(polygon.Vertices[0], tolerance), "0"); + Assert.IsTrue(new Vector2(2f, 0.5f).EqualsWithTolerence(polygon.Vertices[1], tolerance), "1"); + Assert.IsTrue(new Vector2(-2f, 0.5f).EqualsWithTolerence(polygon.Vertices[2], tolerance), "2"); } } } \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tests/Sprites/SpriteTests.cs b/Source/Tests/MonoGame.Extended.Tests/Sprites/SpriteTests.cs similarity index 94% rename from Source/MonoGame.Extended.Tests/Sprites/SpriteTests.cs rename to Source/Tests/MonoGame.Extended.Tests/Sprites/SpriteTests.cs index 78a1f828..3b56f594 100644 --- a/Source/MonoGame.Extended.Tests/Sprites/SpriteTests.cs +++ b/Source/Tests/MonoGame.Extended.Tests/Sprites/SpriteTests.cs @@ -1,6 +1,5 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using MonoGame.Extended.Shapes; using MonoGame.Extended.Sprites; using MonoGame.Extended.TextureAtlases; using NSubstitute; @@ -21,7 +20,7 @@ namespace MonoGame.Extended.Tests.Sprites Position = new Vector2(400, 240) }; - Assert.AreEqual(new RectangleF(375, 140, 50, 200), sprite.GetBoundingRectangle()); + Assert.AreEqual(new RectangleF(375, 140, 50, 200), sprite.BoundingRectangle); } [Test] @@ -34,7 +33,7 @@ namespace MonoGame.Extended.Tests.Sprites OriginNormalized = new Vector2(1.0f, 1.0f) }; - Assert.AreEqual(new RectangleF(-50, -200, 50, 200), sprite.GetBoundingRectangle()); + Assert.AreEqual(new RectangleF(-50, -200, 50, 200), sprite.BoundingRectangle); } [Test] @@ -47,7 +46,7 @@ namespace MonoGame.Extended.Tests.Sprites Scale = Vector2.One * 2.0f }; - Assert.AreEqual(new RectangleF(-50, -200, 100, 400), sprite.GetBoundingRectangle()); + Assert.AreEqual(new RectangleF(-50, -200, 100, 400), sprite.BoundingRectangle); } [Test] @@ -60,7 +59,7 @@ namespace MonoGame.Extended.Tests.Sprites Rotation = MathHelper.ToRadians(90) }; - Assert.AreEqual(new RectangleF(-100, -25, 200, 50), sprite.GetBoundingRectangle()); + AssertExtensions.AreApproximatelyEqual(new RectangleF(-100, -25, 200, 50), sprite.BoundingRectangle); } [Test] diff --git a/Source/Tests/MonoGame.Extended.Tests/TestGraphicsDevice.cs b/Source/Tests/MonoGame.Extended.Tests/TestGraphicsDevice.cs new file mode 100644 index 00000000..8a8741b1 --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/TestGraphicsDevice.cs @@ -0,0 +1,12 @@ +using Microsoft.Xna.Framework.Graphics; + +namespace MonoGame.Extended.Tests +{ + public class TestGraphicsDevice : GraphicsDevice + { + public TestGraphicsDevice() + : base(GraphicsAdapter.DefaultAdapter, GraphicsProfile.Reach, new PresentationParameters()) + { + } + } +} \ No newline at end of file diff --git a/Source/MonoGame.Extended.Tests/TestHelper.cs b/Source/Tests/MonoGame.Extended.Tests/TestHelper.cs similarity index 76% rename from Source/MonoGame.Extended.Tests/TestHelper.cs rename to Source/Tests/MonoGame.Extended.Tests/TestHelper.cs index d5a66cba..459113f7 100644 --- a/Source/MonoGame.Extended.Tests/TestHelper.cs +++ b/Source/Tests/MonoGame.Extended.Tests/TestHelper.cs @@ -15,7 +15,10 @@ namespace MonoGame.Extended.Tests public static GraphicsDevice CreateGraphicsDevice() { - return new GraphicsDevice(GraphicsAdapter.DefaultAdapter, GraphicsProfile.HiDef, new PresentationParameters()) + return new GraphicsDevice( + GraphicsAdapter.DefaultAdapter, + GraphicsProfile.HiDef, + new PresentationParameters()) { Viewport = new Viewport(0, 0, 800, 480) }; diff --git a/Source/MonoGame.Extended.Tests/TextureAtlases/TextureAtlasTests.cs b/Source/Tests/MonoGame.Extended.Tests/TextureAtlases/TextureAtlasTests.cs similarity index 88% rename from Source/MonoGame.Extended.Tests/TextureAtlases/TextureAtlasTests.cs rename to Source/Tests/MonoGame.Extended.Tests/TextureAtlases/TextureAtlasTests.cs index b73f2b97..eefc93e8 100644 --- a/Source/MonoGame.Extended.Tests/TextureAtlases/TextureAtlasTests.cs +++ b/Source/Tests/MonoGame.Extended.Tests/TextureAtlases/TextureAtlasTests.cs @@ -14,7 +14,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_CreateRegion_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 100, 200); - var atlas = new TextureAtlas(texture); + var atlas = new TextureAtlas(null, texture); var region = atlas.CreateRegion("region0", 10, 20, 30, 40); @@ -29,7 +29,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_GetRegionsByIndex_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 100, 200); - var atlas = new TextureAtlas(texture); + var atlas = new TextureAtlas(null, texture); var region0 = atlas.CreateRegion("region0", 10, 20, 30, 40); var region1 = atlas.CreateRegion("region1", 50, 60, 35, 45); @@ -45,7 +45,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_GetRegionsByName_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 100, 200); - var atlas = new TextureAtlas(texture); + var atlas = new TextureAtlas(null, texture); var region0 = atlas.CreateRegion("region0", 10, 20, 30, 40); var region1 = atlas.CreateRegion("region1", 50, 60, 35, 45); @@ -60,7 +60,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_RemoveRegions_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 100, 200); - var atlas = new TextureAtlas(texture); + var atlas = new TextureAtlas(null, texture); var region0 = atlas.CreateRegion("region0", 10, 20, 30, 40); var region1 = atlas.CreateRegion("region1", 50, 60, 35, 45); @@ -87,7 +87,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_CreateRegionThatAlreadyExistsThrowsException_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 100, 200); - var atlas = new TextureAtlas(texture); + var atlas = new TextureAtlas(null, texture); atlas.CreateRegion("region0", 10, 20, 30, 40); Assert.Throws(() => atlas.CreateRegion("region0", 50, 60, 35, 45)); @@ -97,7 +97,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_GetRegion_InvalidIndexThrowsException_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 100, 200); - var atlas = new TextureAtlas(texture); + var atlas = new TextureAtlas(null, texture); atlas.CreateRegion("region0", 10, 20, 30, 40); Assert.Throws(() => atlas.GetRegion(-1)); @@ -107,7 +107,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_GetRegion_InvalidNameThrowsException_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 100, 200); - var atlas = new TextureAtlas(texture); + var atlas = new TextureAtlas(null, texture); atlas.CreateRegion("region0", 10, 20, 30, 40); Assert.Throws(() => atlas.GetRegion("region1")); @@ -117,7 +117,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_EnumerateRegions_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 100, 200); - var atlas = new TextureAtlas(texture); + var atlas = new TextureAtlas(null, texture); var regions = new TextureRegion2D[3]; regions[0] = atlas.CreateRegion("region0", 10, 20, 30, 40); @@ -136,7 +136,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_Create_WithDefaultParameters_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 50, 100) {Name = "testTexture"}; - var atlas = TextureAtlas.Create(texture, 25, 50); + var atlas = TextureAtlas.Create(null, texture, 25, 50); Assert.AreEqual(4, atlas.RegionCount); Assert.IsTrue(atlas.Regions.All(i => i.Width == 25)); @@ -149,7 +149,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_Create_WithMaxRegionCount_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 64, 64); - var atlas = TextureAtlas.Create(texture, 32, 32, maxRegionCount: 3); + var atlas = TextureAtlas.Create(null, texture, 32, 32, maxRegionCount: 3); Assert.AreEqual(3, atlas.RegionCount); } @@ -158,7 +158,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_Create_WithMargin_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 24, 24); - var atlas = TextureAtlas.Create(texture, 10, 10, margin: 2); + var atlas = TextureAtlas.Create(null, texture, 10, 10, margin: 2); Assert.AreEqual(4, atlas.RegionCount); Assert.IsTrue(atlas.Regions.All(i => i.Width == 10 && i.Height == 10)); @@ -172,7 +172,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_Create_WithSpacing_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 24, 24); - var atlas = TextureAtlas.Create(texture, 10, 10, spacing: 2); + var atlas = TextureAtlas.Create(null, texture, 10, 10, spacing: 2); Assert.AreEqual(4, atlas.RegionCount); Assert.IsTrue(atlas.Regions.All(i => i.Width == 10 && i.Height == 10)); @@ -186,7 +186,7 @@ namespace MonoGame.Extended.Tests.TextureAtlases public void TextureAtlas_Create_WithMarginAndSpacing_Test() { var texture = new Texture2D(TestHelper.CreateGraphicsDevice(), 28, 28); - var atlas = TextureAtlas.Create(texture, 10, 10, margin: 3, spacing: 2); + var atlas = TextureAtlas.Create(null, texture, 10, 10, margin: 3, spacing: 2); Assert.AreEqual(4, atlas.RegionCount); Assert.IsTrue(atlas.Regions.All(i => i.Width == 10 && i.Height == 10)); diff --git a/Source/MonoGame.Extended.Tests/TextureAtlases/TextureRegion2DTests.cs b/Source/Tests/MonoGame.Extended.Tests/TextureAtlases/TextureRegion2DTests.cs similarity index 100% rename from Source/MonoGame.Extended.Tests/TextureAtlases/TextureRegion2DTests.cs rename to Source/Tests/MonoGame.Extended.Tests/TextureAtlases/TextureRegion2DTests.cs diff --git a/Source/MonoGame.Extended.Tests/Vector2ExtensionsTests.cs b/Source/Tests/MonoGame.Extended.Tests/Vector2ExtensionsTests.cs similarity index 85% rename from Source/MonoGame.Extended.Tests/Vector2ExtensionsTests.cs rename to Source/Tests/MonoGame.Extended.Tests/Vector2ExtensionsTests.cs index 851bf080..a6ef477f 100644 --- a/Source/MonoGame.Extended.Tests/Vector2ExtensionsTests.cs +++ b/Source/Tests/MonoGame.Extended.Tests/Vector2ExtensionsTests.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using Microsoft.Xna.Framework; using NUnit.Framework; @@ -14,7 +15,7 @@ namespace MonoGame.Extended.Tests var b = new Vector2(1.0000001f, 1.0000001f); Assert.IsFalse(a.Equals(b)); - Assert.IsTrue(a.EqualsWithTolerance(b)); + Assert.IsTrue(a.EqualsWithTolerence(b)); } [Test] @@ -23,18 +24,19 @@ namespace MonoGame.Extended.Tests var a = new Vector2(5, -10); var b = a.NormalizedCopy(); - Assert.IsTrue(new Vector2(0.4472136f, -0.8944272f).EqualsWithTolerance(b)); + Assert.IsTrue(new Vector2(0.4472136f, -0.8944272f).EqualsWithTolerence(b)); } [Test] public void Vector2_Perpendicular_Test() { + // http://mathworld.wolfram.com/PerpendicularVector.html var a = new Vector2(5, -10); var b = a.PerpendicularClockwise(); var c = a.PerpendicularCounterClockwise(); - Assert.AreEqual(new Vector2(10, 5), b); - Assert.AreEqual(new Vector2(-10, -5), c); + Assert.AreEqual(new Vector2(-10, -5), b); + Assert.AreEqual(new Vector2(10, 5), c); } [Test] @@ -43,7 +45,7 @@ namespace MonoGame.Extended.Tests var a = new Vector2(0, -10); var b = a.Rotate(MathHelper.ToRadians(90)); - Assert.IsTrue(new Vector2(10, 0).EqualsWithTolerance(b)); + Assert.IsTrue(new Vector2(10, 0).EqualsWithTolerence(b)); } [Test] @@ -52,7 +54,7 @@ namespace MonoGame.Extended.Tests var a = new Vector2(0, 10); var b = a.Rotate(MathHelper.ToRadians(360)); - Assert.IsTrue(new Vector2(0, 10).EqualsWithTolerance(b)); + Assert.IsTrue(new Vector2(0, 10).EqualsWithTolerence(b)); } [Test] @@ -61,7 +63,7 @@ namespace MonoGame.Extended.Tests var a = new Vector2(0, -10); var b = a.Rotate(MathHelper.ToRadians(45)); - Assert.IsTrue(new Vector2(7.071068f, -7.071068f).EqualsWithTolerance(b)); + Assert.IsTrue(new Vector2(7.071068f, -7.071068f).EqualsWithTolerence(b)); } [Test] diff --git a/Source/MonoGame.Extended.Tests/ViewportAdapters/BoxingViewportAdapterTests.cs b/Source/Tests/MonoGame.Extended.Tests/ViewportAdapters/BoxingViewportAdapterTests.cs similarity index 92% rename from Source/MonoGame.Extended.Tests/ViewportAdapters/BoxingViewportAdapterTests.cs rename to Source/Tests/MonoGame.Extended.Tests/ViewportAdapters/BoxingViewportAdapterTests.cs index 1844e119..50d099ec 100644 --- a/Source/MonoGame.Extended.Tests/ViewportAdapters/BoxingViewportAdapterTests.cs +++ b/Source/Tests/MonoGame.Extended.Tests/ViewportAdapters/BoxingViewportAdapterTests.cs @@ -15,7 +15,7 @@ namespace MonoGame.Extended.Tests.ViewportAdapters var viewportAdapter = new BoxingViewportAdapter(gameWindow, graphicsDevice, 800, 480); graphicsDevice.Viewport = new Viewport(0, 0, 1024, 768); - gameWindow.RaiseOnClientSizeChangedEvent(); + viewportAdapter.Reset(); Assert.AreEqual(1024, graphicsDevice.Viewport.Width); Assert.AreEqual(614, graphicsDevice.Viewport.Height); @@ -30,7 +30,7 @@ namespace MonoGame.Extended.Tests.ViewportAdapters var viewportAdapter = new BoxingViewportAdapter(gameWindow, graphicsDevice, 800, 480); graphicsDevice.Viewport = new Viewport(0, 0, 900, 500); - gameWindow.RaiseOnClientSizeChangedEvent(); + viewportAdapter.Reset(); Assert.AreEqual(833, graphicsDevice.Viewport.Width); Assert.AreEqual(500, graphicsDevice.Viewport.Height); diff --git a/Source/MonoGame.Extended.Tests/ViewportAdapters/DefaultViewportAdapterTests.cs b/Source/Tests/MonoGame.Extended.Tests/ViewportAdapters/DefaultViewportAdapterTests.cs similarity index 100% rename from Source/MonoGame.Extended.Tests/ViewportAdapters/DefaultViewportAdapterTests.cs rename to Source/Tests/MonoGame.Extended.Tests/ViewportAdapters/DefaultViewportAdapterTests.cs diff --git a/Source/Tests/MonoGame.Extended.Tests/packages.config b/Source/Tests/MonoGame.Extended.Tests/packages.config new file mode 100644 index 00000000..77d6028c --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tests/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Tests/MonoGame.Extended.Tiled.Tests/FullMapRendererTest.cs b/Source/Tests/MonoGame.Extended.Tiled.Tests/FullMapRendererTest.cs new file mode 100644 index 00000000..5e525d3f --- /dev/null +++ b/Source/Tests/MonoGame.Extended.Tiled.Tests/FullMapRendererTest.cs @@ -0,0 +1,291 @@ +//using Microsoft.Xna.Framework; +//using Microsoft.Xna.Framework.Graphics; +//using MonoGame.Extended.Shapes; +//using MonoGame.Extended.TextureAtlases; +//using MonoGame.Extended.Tiled; +//using MonoGame.Extended.Tiled.Graphics; +//using NSubstitute; +//using NUnit.Framework; + +//namespace MonoGame.Extended.Tests.Tiled.Renderers +//{ +// [TestFixture] +// public class FullMapRendererTest +// { +// [Test] +// public void Draw_MapObjectLayer_MissingGID_NoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); + +// IShapeF shape = new RectangleF(1, 1, 1, 1); +// TiledObject[] objs = +// { +// new TiledObject(TiledObjectType.Tile, 1, null, shape, 1, 1) { IsVisible = true }, +// }; + +// var layer = new TiledObjectLayer("object", objs); +// m.AddLayer(layer); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Test] +// public void Draw_MapObjectLayer_ShapeObject_NoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); + +// IShapeF shape = new RectangleF(1, 1, 1, 1); +// TiledObject[] objs = +// { +// new TiledObject(TiledObjectType.Rectangle, 1, 1, shape, 1, 1) { IsVisible = true }, +// }; + +// var layer = new TiledObjectLayer("object", objs); +// m.AddLayer(layer); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Test] +// public void Draw_MapObjectLayer_TileObject_OneGroup() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); + +// IShapeF shape = new RectangleF(1, 1, 1, 1); +// TiledObject[] objs = +// { +// new TiledObject(TiledObjectType.Tile, 1, 1, shape, 1, 1) { IsVisible = true }, +// }; + +// var layer = new TiledObjectLayer("object", objs); +// m.AddLayer(layer); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNotNull(gd.Indices); +// Assert.AreEqual(6, gd.Indices.IndexCount); +// } + +// [Test] +// public void Draw_MapObjectLayer_NotVisible_NoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); + +// IShapeF shape = new RectangleF(1, 1, 1, 1); +// TiledObject[] objs = +// { +// new TiledObject(TiledObjectType.Tile, 1, 1, shape, 1, 1) { IsVisible = false }, +// }; + +// var layer = new TiledObjectLayer("object", objs); +// m.AddLayer(layer); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Test] +// public void Draw_MapObjectLayer_NoObjects_NoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); + +// TiledObject[] objs = {}; + +// var layer = new TiledObjectLayer("object", objs); +// m.AddLayer(layer); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Test] +// public void Draw_MapTileLayer_TwoVisible_OneGroup() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); +// m.CreateTileLayer("tile", 2, 2, new int[] { 1, 0, 1, 0 }); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNotNull(gd.Indices); +// Assert.AreEqual(12, gd.Indices.IndexCount); +// } + +// [Test] +// public void Draw_MapTileLayer_AllBlank_NoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); +// m.CreateTileLayer("tile", 2, 2, new int[] { 0, 0, 0, 0 }); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Test] +// public void Draw_MapImageLayer_OneGroup() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For(gd, 64, 64); + +// var m = new TiledMap("test", 10, 10, 32, 32); +// m.CreateImageLayer("img", texture, new Vector2(100, 100)); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNotNull(gd.Indices); +// Assert.AreEqual(6, gd.Indices.IndexCount); +// } + +// [Test] +// public void Draw_MapNoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// r.Map = new TiledMap("test", 10, 10, 32, 32); + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Test] +// public void Draw_NoMap() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Test] +// public void CreatePrimatives() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var texture = Substitute.For(gd, 64, 64); +// var region = Substitute.For(texture, 1, 1, 32, 32); + +// VertexPositionTexture[] vertices; +// ushort[] indexes; + +// var r = new MockRenderer(gd); +// r.CreatePrimitives(new Point(0, 0), region, 0, 0.5f, out vertices, out indexes); + +// Assert.AreEqual(4, vertices.Length); +// Assert.AreEqual(new Vector3(0, 0, .5f), vertices[0].Position); +// Assert.AreEqual(new Vector2(0.0234375f, 0.0234375f), vertices[0].TextureCoordinate); +// Assert.AreEqual(new Vector3(32, 0, .5f), vertices[1].Position); +// Assert.AreEqual(new Vector2(0.515625f, 0.0234375f), vertices[1].TextureCoordinate); +// Assert.AreEqual(new Vector3(0, 32, .5f), vertices[2].Position); +// Assert.AreEqual(new Vector2(0.0234375f, 0.515625f), vertices[2].TextureCoordinate); +// Assert.AreEqual(new Vector3(32, 32, .5f), vertices[3].Position); +// Assert.AreEqual(new Vector2(0.515625f, 0.515625f), vertices[3].TextureCoordinate); + +// CollectionAssert.AreEqual(new[] { 0, 1, 2, 1, 3, 2 }, indexes); +// } + +// [Test] +// public void CreatePrimatives_Offset10() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var texture = Substitute.For(gd, 64, 64); +// var region = Substitute.For(texture, 1, 1, 32, 32); + +// VertexPositionTexture[] vertices; +// ushort[] indexes; + +// var r = new MockRenderer(gd); +// r.CreatePrimitives(new Point(0, 0), region, 10, 0.5f, out vertices, out indexes); + +// Assert.AreEqual(4, vertices.Length); +// Assert.AreEqual(new Vector3(0, 0, .5f), vertices[0].Position); +// Assert.AreEqual(new Vector2(0.0234375f, 0.0234375f), vertices[0].TextureCoordinate); +// Assert.AreEqual(new Vector3(32, 0, .5f), vertices[1].Position); +// Assert.AreEqual(new Vector2(0.515625f, 0.0234375f), vertices[1].TextureCoordinate); +// Assert.AreEqual(new Vector3(0, 32, .5f), vertices[2].Position); +// Assert.AreEqual(new Vector2(0.0234375f, 0.515625f), vertices[2].TextureCoordinate); +// Assert.AreEqual(new Vector3(32, 32, .5f), vertices[3].Position); +// Assert.AreEqual(new Vector2(0.515625f, 0.515625f), vertices[3].TextureCoordinate); + +// CollectionAssert.AreEqual(new[] { 40, 41, 42, 41, 43, 42 }, indexes); +// } +// } + +// internal class MockRenderer : TiledMapRenderer +// { +// public MockRenderer(GraphicsDevice graphicsDevice) +// : base(graphicsDevice) +// { +// } + +// public void CreatePrimitives(Point point, TextureRegion2D region, int offset, float depth, +// out VertexPositionTexture[] vertices, out ushort[] indexes) +// { +// base.CreatePrimitives(point, region, offset, depth, out vertices, out indexes); +// } + +// public new void Draw(Matrix viewMatrix) +// { +// base.Draw(viewMatrix); +// } +// } +//} diff --git a/Source/MonoGame.Extended.Tests/MonoGame.Extended.Tests.csproj b/Source/Tests/MonoGame.Extended.Tiled.Tests/MonoGame.Extended.Tiled.Tests.csproj similarity index 57% rename from Source/MonoGame.Extended.Tests/MonoGame.Extended.Tests.csproj rename to Source/Tests/MonoGame.Extended.Tiled.Tests/MonoGame.Extended.Tiled.Tests.csproj index 30987d22..822077db 100644 --- a/Source/MonoGame.Extended.Tests/MonoGame.Extended.Tests.csproj +++ b/Source/Tests/MonoGame.Extended.Tiled.Tests/MonoGame.Extended.Tiled.Tests.csproj @@ -1,16 +1,17 @@  - + Debug AnyCPU - {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1} + {A88FC71D-12E3-42A5-AFF3-89C6498C3C65} Library Properties - MonoGame.Extended.Tests - MonoGame.Extended.Tests + MonoGame.Extended.Tiled.Tests + MonoGame.Extended.Tiled.Tests v4.5 512 + true @@ -20,7 +21,6 @@ DEBUG;TRACE prompt 4 - true pdbonly @@ -29,19 +29,17 @@ TRACE prompt 4 - true - - $(MSBuildExtensionsPath)\MonoGame\v3.0\Tools\MonoGame.Framework.dll - True + + False + C:\Program Files (x86)\MSBuild\MonoGame\v3.0\Tools\MonoGame.Framework.dll - - ..\packages\NSubstitute.1.9.2.0\lib\net45\NSubstitute.dll - True + + C:\Program Files (x86)\MSBuild\MonoGame\v3.0\Tools\MonoGame.Framework.Content.Pipeline.dll - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll True @@ -50,33 +48,27 @@ + - - - - - - - - - - - - - - - - - {41724C52-3D50-45BB-81EB-3C8A247EAFD1} - MonoGame.Extended - + + + + + {07B2ADE2-73E3-41C4-AEA1-D5566A5AB902} + MonoGame.Extended.Tiled + + + {CEF2144F-7E98-45A5-BE08-E6DBC307A5C1} + MonoGame.Extended.Tests + +

  • aI1&V_Lp@m5%8C3RJuSuDSb%WYMi5cI6uI)yEZ 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