/** Cooked with Flambe, https://getflambe.com */ 'use strict';(function(){function r(a,b){function c(){}c.prototype=a;var d=new c,e;for(e in b)d[e]=b[e];b.toString!==Object.prototype.toString&&(d.toString=b.toString);return d}function zg(a){return a instanceof Array?function(){return G.iter(a)}:"function"==typeof a.iterator?x(a,a.iterator):a.iterator}function x(a,b){if(null==b)return null;null==b.__id__&&(b.__id__=Mh++);var c;null==a.hx__closures__?a.hx__closures__={}:c=a.hx__closures__[b.__id__];null==c&&(c=function(){return c.method.apply(c.scope, arguments)},c.scope=a,c.method=b,a.hx__closures__[b.__id__]=c);return c}var h={},k=function(){return F.__string_rec(this,"")},Ub=function(){};h.CompileTimeClassList=Ub;Ub.__name__=["CompileTimeClassList"];Ub.getPaths=function(a){null==Ub.paths&&Ub.initialise();return Ub.paths.get(a)};Ub.initialise=function(){Ub.lists=new u;Ub.paths=new u;var a=se.getType(Ub);if(null!=a.classLists)for(var b=0,a=a.classLists;bc)return"";null==c&&(c=a.length);0>b?(b=a.length+b,0>b&&(b=0)):0>c&&(c=a.length+c-b);return a.substr(b,c)};G.remove=function(a,b){var c=a.indexOf(b);if(-1== c)return!1;a.splice(c,1);return!0};G.iter=function(a){return{cur:0,arr:a,hasNext:function(){return this.cur=a?0:Math.floor(Math.random()*a)};var pa=function(){};h.StringTools=pa;pa.__name__=["StringTools"];pa.startsWith=function(a,b){return a.length>=b.length&&G.substr(a,0,b.length)==b};pa.replace=function(a,b,c){return a.split(b).join(c)};var ta=function(){};h.Type=ta;ta.__name__=["Type"];ta.getClass= function(a){return null==a?null:a instanceof Array&&null==a.__enum__?Array:a.__class__};ta.getClassName=function(a){return a.__name__.join(".")};ta.resolveClass=function(a){a=h[a];return null==a||!a.__name__?null:a};ta.resolveEnum=function(a){a=h[a];return null==a||!a.__ename__?null:a};ta.createInstance=function(a,b){switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3]);case 5:return new a(b[0], b[1],b[2],b[3],b[4]);case 6:return new a(b[0],b[1],b[2],b[3],b[4],b[5]);case 7:return new a(b[0],b[1],b[2],b[3],b[4],b[5],b[6]);case 8:return new a(b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7]);default:throw"Too many arguments";}};ta.createEnum=function(a,b,c){var d=wb.field(a,b);if(null==d)throw"No such constructor "+b;if(wb.isFunction(d)){if(null==c)throw"Constructor "+b+" need parameters";return d.apply(a,c)}if(null!=c&&0!=c.length)throw"Constructor "+b+" does not need parameters";return d};var Vb= function(){this._managerInitCount=0;if(null!=Vb._instance)throw"There is already one instance of the core running.";Vb._instance=this};h["com.bkom.core.AbstractGameCore"]=Vb;Vb.__name__=["com","bkom","core","AbstractGameCore"];Vb.prototype={init:function(){rb.init();this._entity=new A;B.root.addChild(this._entity);this.buildManagers()},buildManagers:function(){this._managers=[];this._preloader=new Ga;this.addManager(this._preloader);this._stageManager=new hb(v.stageSize,this._entity);this.addManager(this._stageManager)}, initManagers:function(){for(var a=0,b=this._managers;a=d)return;b.save();1>d&&b.multiplyAlpha(d);null!=c.blendMode&&b.setBlendMode(c.blendMode);var d=c.getLocalMatrix(),e=d.m02,i=d.m12;0!=(c._flags&32)&&(e=Math.round(e),i=Math.round(i));b.transform(d.m00,d.m10,d.m01,d.m11,e,i);d=c.scissor; null!=d&&b.applyScissor(d.x,d.y,d.width,d.height);c.draw(b)}d=a._compMap.Director_18;if(null!=d){d=d.occludedScenes;for(e=0;ethis._currentAnimation.get_duration()||0>this._position)this._isAnimComplete=!0,this._position=(this._position%this._currentAnimation.get_duration()+this._currentAnimation.get_duration())% this._currentAnimation.get_duration(),a=this._position*this._currentAnimation.get_frameRate();if(this._isPlaying)this["goto"](a)}},play:function(){this._playCalled=this._isPlaying=!0;return this},stop:function(){this._isPlaying=!1;return this},gotoAndPlay:function(a,b,c){null==c&&(c=!0);null==b&&(b=!0);"string"==typeof a?(c&&null!=this._currentAnimation&&a==this._currentAnimation.get_name()&&(b=!1),b&&this.rewind(),this.gotoAnim(a)):(this._position=a/this._currentAnimation.get_frameRate(),this["goto"](a)); return this.play()},rewind:function(){this._position=0;this._isAnimComplete=!1;this["goto"](0)},gotoAnim:function(a,b){null==b&&(b=!1);if(!b||!(null!=this._currentAnimation&&a==this._currentAnimation.get_name())){this._isAnimComplete=!1;if(this._spritesDict.exists(a)){this._sprites=this._spritesDict.get(a);var c;if(c=null!=this._spriteSheet)if(c=null!=this._spriteSheet.get_symbols())c=this._spriteSheet.get_symbols().exists(a);c&&(this._currentAnimation=this.get_spriteSheet().getSymbol(a))}else null; this["goto"](this._frame)}},"goto":function(a){null!=this._currentAnimation&&(this._frame=a);this._frameIndex=this._frame|0;if(this._isAnimComplete){this._isAnimComplete=!1;this.animComplete.emit(this);if(this._playCalled||!this._isPlaying)return;if(!this._loop||1>=this._sprites.length){if(0this.symbol.duration&&(this._position=this._autoRewind?this.symbol.duration:this._position%this.symbol.duration, null!=this._looped&&this._looped.emit(),this._loop||this.set_paused(!0));break;case 256:this._flags&=-257}this["goto"](this._position*this.symbol.frameRate)},"goto":function(a){if(this._frame!=a){if(a=c&&(c=lb.DefaultFrameRate);this._symbols=new u;for(var b=b.split(","),e=0;e=p?"default":G.substr(j.filename,0,p);p=this._symbols.get(f);null==p&&(b.fps&&null!=b.fps[f]&&(i=b.fps[f]),p=new Hd(this,i,f,new ya(j.sourceSize.w,j.sourceSize.h)),this._symbols.set(f,p),null==this._firstSymbol&&(this._firstSymbol=p));i=this.createBitmap(j,a);p.addFrame(i)}},createBitmap:function(a,b){return 0==a.frame.w||0==a.frame.h?null:new Jd({symbol:a.filename,rect:[a.frame.x, a.frame.y,a.frame.w,a.frame.h],origin:[-a.spriteSourceSize.x,-a.spriteSourceSize.y]},b)},getSymbol:function(a){return this._symbols.get(a)},get_symbols:function(){return this._symbols},__class__:lb};var fa=function(a,b,c){this._rewindOnComplete=!1;this._loop=!0;this._isPlaying=!1;this._position=this._currentFrame=this._nbFrames=0;this._autoPlay=!0;this._framerate=24;J.call(this);this._framerate=a;this._autoPlay=b;this._loop=c};h["com.bkom.core.animations.TPAnimation"]=fa;fa.__name__=["com","bkom", "core","animations","TPAnimation"];fa.__super__=J;fa.prototype=r(J.prototype,{get_name:function(){return"TPAnimation_3"},onUpdate:function(a){J.prototype.onUpdate.call(this,a);this._isPlaying&&(this._position+=a,this._currentFrame=this._position*this._framerate|0,this._currentFrame>=this._nbFrames?this._loop?(null!=this._onLooped&&this._onLooped.emit(this),this._isPlaying&&this.gotoPosition(this._position%(this._nbFrames/this._framerate))):(this.stop(!0),this._isPlaying?this.gotoPosition(this._position% (this._nbFrames/this._framerate)):this._rewindOnComplete&&this.rewind()):this.gotoFrame(this._currentFrame))},gotoFrame:function(a,b,c){null==c&&(c=!1);this.render(a);this._currentFrame=a;c&&(this._position=a/this._framerate);return this},render:function(){},gotoPosition:function(a,b){null==b&&(b=!1);this._position=a;return this.gotoFrame(a*this._framerate|0,b)},rewind:function(a){null==a&&(a=!1);return this.gotoFrame(0,a,!0)},play:function(a,b){null==b&&(b=!1);null==a&&(a=!0);this._rewindOnComplete= b;this._loop=a;this._isPlaying=!0;return this},stop:function(a){null==a&&(a=!1);a&&null!=this._onComplete&&this._onComplete.emit(this);this._isPlaying=!1;return this},show:function(){return this},hide:function(){return this},get_onComplete:function(){null==this._onComplete&&(this._onComplete=new Q);return this._onComplete},set_visible:function(a){a?this.show():this.hide();return a},__class__:fa});var ub=function(a,b,c,d,e,i){null==i&&(i="");this._currentAnimName="";fa.call(this,c,d,e);this._anims= new u;this._animSpritesheetName=a;this._animSpriteSheet=Z.get(!0,a,b);this._subTextures=this._animSpriteSheet.getEmptySubtextures();this._animElement=new md(null,this._animSpriteSheet,null);-1!=i.indexOf("auto|")&&(this.buildAnimations(),i=i.split("auto|")[1]);-1!=i.indexOf("_all")&&("_all"==i&&(i="_all|all"),-1!=i.indexOf("_all|")&&(this.buildAllFramesAnim(),i=i.split("_all|")[1]));""!=i&&this.gotoAnim(i,this._autoPlay)};h["com.bkom.core.animations.TPCanvasAnimation"]=ub;ub.__name__=["com","bkom", "core","animations","TPCanvasAnimation"];ub.__super__=fa;ub.prototype=r(fa.prototype,{buildAllFramesAnim:function(){null==this._animationsCache&&(this._animationsCache=new u);var a=null;if(this._animationsCache.exists(this._animSpritesheetName+"_all"))a=this._animationsCache.get(this._animSpritesheetName+"_all").get("all");else{for(var a=[],b=0,c=this._animSpriteSheet.get_data().length;b=a[2]||0>=a[3]?null:new Jd({symbol:b,rect:[a[0],a[1],a[2],a[3]],origin:[a[5],a[6]]},this._textures[a[4]])},__class__:Ld}); var ze=function(a){this._kernings=null;this.xOffset=this.yOffset=this.xAdvance=0;this.page=null;this.x=this.y=this.width=this.height=0;this.charCode=a};h["flambe.display.Glyph"]=ze;ze.__name__=["flambe","display","Glyph"];ze.prototype={setKerning:function(a,b){null==this._kernings&&(this._kernings=new Wb);this._kernings.set(a,b)},__class__:ze};var cb=function(a,b){this.name=b;this._pack=a;this._file=a.getFile(b+cb.EXTENSION);this.reload()};h["flambe.display.Font"]=cb;cb.__name__=["flambe","display", "Font"];cb.prototype={reload:function(){this._glyphs=new Wb;this._glyphs.set(cb.NEWLINE.charCode,cb.NEWLINE);for(var a=new Md(this._file.toString()),b=new Wb,c=this.name.lastIndexOf("/"),c=0<=c?G.substr(this.name,0,c+1):"",d=a.keywords();d.hasNext();)switch(d.next()){case "info":for(var e=a.pairs();e.hasNext();){var i=e.next();switch(i.key){case "size":this.size=i.getInt()}}break;case "common":for(e=a.pairs();e.hasNext();)switch(i=e.next(),i.key){case "lineHeight":this.lineHeight=i.getInt()}break; case "page":for(var e=0,i=null,p=a.pairs();p.hasNext();){var f=p.next();switch(f.key){case "id":e=f.getInt();break;case "file":i=f.getString()}}i=this.getTexture(c+i);b.set(e,i);break;case "char":e=null;for(i=a.pairs();i.hasNext();)switch(p=i.next(),p.key){case "id":e=new ze(p.getInt());break;case "x":e.x=p.getInt();break;case "y":e.y=p.getInt();break;case "width":e.width=p.getInt();break;case "height":e.height=p.getInt();break;case "page":p=p.getInt();e.page=b.get(p);break;case "xoffset":e.xOffset= p.getInt();break;case "yoffset":e.yOffset=p.getInt();break;case "xadvance":e.xAdvance=p.getInt()}this._glyphs.set(e.charCode,e);break;case "kerning":e=null;p=i=0;for(f=a.pairs();f.hasNext();){var j=f.next();switch(j.key){case "first":e=this._glyphs.get(j.getInt());break;case "second":i=j.getInt();break;case "amount":p=j.getInt()}}null!=e&&0!=p&&e.setKerning(i,p)}},getTexture:function(a){return this._pack.getTexture(ca.removeFileExtension(a))},__class__:cb};var Ae=function(a){cb.call(this,V.fontsPack, a)};h["com.bkom.core.fonts.BkomFont"]=Ae;Ae.__name__=["com","bkom","core","fonts","BkomFont"];Ae.__super__=cb;Ae.prototype=r(cb.prototype,{getTexture:function(a){return Z.get(!0,"fonts",V.fontsPack).getImageSubTexture(a,!0)},__class__:Ae});var W=function(){J.call(this);this._ready=new ja};h["com.bkom.core.managers.AbstractManager"]=W;W.__name__=["com","bkom","core","managers","AbstractManager"];W.__super__=J;W.prototype=r(J.prototype,{get_name:function(){return"AbstractManager_9"},initComp:function(){this.initComplete()}, initComplete:function(){this._ready.emit()},get_ready:function(){return this._ready},__class__:W});var Eh=function(){};h["com.bkom.core.managers._AudioManager.FadeSoundInfo"]=Eh;Eh.__name__="com,bkom,core,managers,_AudioManager,FadeSoundInfo".split(",");var O=function(a){this._isMuted=this._mutedByUser=this._isSavedValuesRestored=!1;this._currentSfxVolume=this._oldSfxVolume=this._currentMusicVolume=this._oldMusicVolume=1;O._instance=this;null==a&&null;this._audioManager=a;this._currentMusic=null; this._currentMusicId=m.NONE;this._currentMusicVolume=this._currentSfxVolume=1;this._playingSounds=[];this._currentSounds=new u;this._currentMusics=new u;this._soundHandlers=new u;this._removableSoundHandlers=new u;this._fadingSounds=new Nd;this._endedFadingSounds=[]};h["com.bkom.core.managers.AudioManager"]=O;O.__name__=["com","bkom","core","managers","AudioManager"];O.get_instance=function(){return O._instance};O.prototype={poolSound:function(a){null==this._soundPool&&(this._soundPool=new u);if(!this._soundPool.exists(a.name)){var b= [];this._soundPool.set(a.name,b);b}this._soundPool.get(a.name).push(a)},isContainedInPool:function(a){return null!=this._soundPool&&function(b){var c=q.string(a);return b._soundPool.exists(c)}(this)&&0 TPSpriteSheet: No files found for: "+b+"\nPlease verify that you have either "+ b+".json or "+b+"_0.json";this._images=new u;this._textures=new u;this._textureArray=[];i=0;for(p=this._data.length;i TPSpriteSheet: requested image not found: "+a;return b},getEmptySubtextures:function(){for(var a=new u,b=this._textures.keys();b.hasNext();){var c=b.next(),d=this._textures.get(c).subTexture(0,0,0,0);a.set(c,d)}return a},getImageSubTexture:function(a,b){null== b&&(b=!1);var a=ca.removeFileExtension(a),c=null;if(this._images.exists(a))c=this._images.get(a),c=b?this._textures.get(c.texture).subTexture(c.frame.x-c.spriteSourceSize.x,c.frame.y-c.spriteSourceSize.y,c.frame.w+c.spriteSourceSize.x,c.frame.h+c.spriteSourceSize.y):this._textures.get(c.texture).subTexture(c.frame.x,c.frame.y,c.frame.w,c.frame.h);else throw"Error -> TPSpriteSheet: requested image not found: "+a;return c},switchImageTo:function(a,b,c,d){null==c&&(c=!0);var e=null;null!=a&&this._images.exists(b)&& (b=this._images.get(b),c?(e=this._textures.get(b.texture).subTexture(b.frame.x,b.frame.y,b.frame.w,b.frame.h),a.texture=e):(c=d.get(b.texture),a.texture=c,c.set_x(b.frame.x),c.set_y(b.frame.y),c.set_width(b.frame.w),c.set_height(b.frame.h)),a.setAnchorOffset(-b.spriteSourceSize.x,-b.spriteSourceSize.y));return a},get_data:function(){return this._data},__class__:Z};var C=function(a){null==a&&(a=!1);this._isShown=this._isLoaded=this._enabled=!1;J.call(this);this.onLoad=new ja;this.onLoad.connect(x(this, this.build)).once();a&&this.initTransitionSignals()};h["com.bkom.core.views.AbstractHtmlView"]=C;C.__name__=["com","bkom","core","views","AbstractHtmlView"];C.__super__=J;C.prototype=r(J.prototype,{get_name:function(){return"AbstractHtmlView_0"},build:function(){this.localizeText();this.connectEvents()},localizeText:function(){for(var a=this._viewElement.find("[data-loc-id]"),b=0,c=a.length;b=D._timerPool.length?(new D).initComp(a,b,c,d,e):D._timerPool.pop().initComp(a,b,c,d,e)};D.poolTimer=function(a){null==D._timerPool&&(D._timerPool=[]);a.stop();a.set_pooledRestarts(0);a.set_pauseCount(0);a.set_isPooled(!0);return xd.has(D._timerPool,a)?0:D._timerPool.push(a)};D.__super__=J;D.prototype=r(J.prototype,{get_name:function(){return"BTimer_14"},dispose:function(){J.prototype.dispose.call(this);this.destroy(); this._speed=null;this._canBeInitialized=this._started=!1;this._params=this._call=null},initComp:function(a,b,c,d,e){null==e&&(e=!1);this._useParams=!1;this._speed.set__(1);this._internalDelay=this._delay=a;this._pauseCount=this._pooledRestarts=0;this._paused=this._started=!1;this._pausable=!0;this._isPooled=!1;this._loop=b;this._call=d;this._params=null;this._poolOnComplete=e;null!=this._call&&(this._canBeInitialized=!0);c&&(this.create(),this.restart());return this},create:function(){!this._initialized&& this._canBeInitialized&&(this._entity=(new A).add(this),B.root.addChild(this._entity),this._speed.set__(1),D.timers.push(this),this._initialized=!0)},destroy:function(){this._initialized&&(G.remove(D.timers,this),this._entity.dispose(),this._entity=null,this._initialized=!1)},pool:function(){this._isPooled||D.poolTimer(this)},onUpdate:function(a){J.prototype.onUpdate.call(this,a);null!=this._speed&&this._speed.update(a);this._started&&!this._paused&&!this._isPooled&&(this._internalDelay-=a*this._speed._value, 0>=this._internalDelay&&(this._useParams?this._callWithParams(this._params):this._call(),0>=this._internalDelay&&(this._internalDelay+=this._delay),this._loop||(0>=this._pooledRestarts&&(this._started=!1),this._poolOnComplete&&this.pool()),0=this._internalDelay&&(this._internalDelay+=this._delay);this._started=!0;this._paused=!1;this._pauseCount=0}},resume:function(){!this._isPooled&&this._initialized&&this._started&&(this._pauseCount=Math.max(this._pauseCount-1,0),0>=this._pauseCount&&(this._paused=!1))},pause:function(){this._pausable&&(this._paused=!0,this._pauseCount++)},stop:function(){this._internalDelay=this._delay;this._pauseCount=0;this._paused=this._started=!1}, set_pooledRestarts:function(a){return this._pooledRestarts=a},set_pauseCount:function(a){return this._pauseCount=a},set_isPooled:function(a){return this._isPooled=a},__class__:D});var da=function(){this._isGameVisible=!1;this._loadLocalizedLogos=!0;this._backgroundColor=65280;this.useSound=!0;this._isPaused=this._pausedByUser=this._readyToUnpause=!1;this._canStart=this._nbToStart=0;this._isStarted=!1;Vb.call(this);da._instance=this;this._sharedSpriteSheets=new u;this.jsInit();""==da.locale&&(da.locale= "en-US");$c.initialize();this._keyListener=B._platform.getKeyboard().up.connect(x(this,this.onKeyUp));v.loadConfigs(x(this,this.onConfigsLoaded))};h["com.template.GameCore"]=da;da.__name__=["com","template","GameCore"];da.get_instance=function(){return da._instance};da.__super__=Vb;da.prototype=r(Vb.prototype,{onConfigsLoaded:function(){this.configureGame();this.init();this.initManagers()},configureGame:function(){Ga.EMPTY_IMG_URL=v.ASSETS_PATH+"assets/empty.png"},jsInit:function(){this._api=get_gameApi(); v.ASSETS_PATH=this._api.pathToAssets;this.useSound&&onSoundsLoaded(x(this,this.onAllSoundsLoaded));da.locale=getCurrentLocale();this._api.onVisibilityChange=x(this,this.onVisibilityChange)},onAllSoundsLoaded:function(){this.start()},init:function(){Vb.prototype.init.call(this);cb.EXTENSION=".txt"},onVisibilityChange:function(a){if("hidden"==a&&this._isGameVisible)this.onGameHide();else if(!this._isGameVisible)this.onGameShow()},onGameHide:function(){this._isGameVisible=!1;this._isStarted&&this.pause(!1, !1);O.get_instance().triggerMute(!1,0)},onGameShow:function(){this._isGameVisible=!0;this.resume(!1);O.get_instance().triggerMute(!1,1)},buildManagers:function(){Vb.prototype.buildManagers.call(this);this.addManager(Va.get_instance());this._textManager=this.addManager(new V(this._preloader));this._audioManager=new O(get_soundJsAudioManager())},onAllManagersReady:function(){var a=this;Vb.prototype.onAllManagersReady.call(this);this._preloader.purgeFunction=this._api.domPurge;this._stageManager.createBackground(this._backgroundColor); this.loadLocaleInfos(function(b){V.instance.parseLocaleInfos(b);a.displayLoadingScreen()})},continueInitialPreload:function(){this.loadLocalizedLogos()||this.startSharedAssetsLoading()},loadLocaleInfos:function(a){var b=[];b.push(new nd("strings_"+da.locale+".json",v.ASSETS_PATH+"assets/locales/strings_"+da.locale+".json",t.Data,0));this.get_preloader().loadCustomAssets("localeInfos",b,a,!1)},loadLocalizedLogos:function(){if(!this._loadLocalizedLogos)return!1;B.loadAssetPack(ka.fromAssetsSubfolder("images/localized/"+ da.locale)).get(x(this,this.onLocalizedLogosLoaded));return!0},displayLoadingScreen:function(){(function(a){a.addClass("preloadInterfacesImage");var b=function(){a.remove();L.get_instance().showView(Na)};a.attr("src","assets/html/img/interface-assets-0.png");$("body").append(a);a[0].complete||0"))},onLocalizedLogosLoaded:function(a){this._localizedLogos=a;this.startSharedAssetsLoading()},startSharedAssetsLoading:function(){this._sharedAssetsLoader=B.loadAssetPack(ka.fromAssets("shared")); Na.get().trackAssetsLoading(this._sharedAssetsLoader);this._sharedAssetsLoader.get(x(this,this.onSharedAssetsLoaded))},onSharedAssetsLoaded:function(a){this._sharedAssets=a;this.loadingComplete()},start:function(){if(this._canStart>=this._nbToStart){if(this.coreLoadingComplete(),!this._isGameVisible)this.onGameShow()}else this._canStart++},coreLoadingComplete:function(){},loadingComplete:function(){this._isDemoVersion="true"==v.config_game.get("isDemoVersion");this.start()},pause:function(){this._isPaused|| (this._isPaused=!0,D.pauseAll())},resume:function(){this._isPaused&&(this._isPaused=!1,D.resumeAll())},onKeyUp:function(){},get_sharedAssets:function(){return this._sharedAssets},__class__:da});var z=function(){this._soundReady=this._coreReady=this._isGameInit=this._isInGame=!1;da.call(this);z._instance=this};h["com.game.GameManager"]=z;z.__name__=["com","game","GameManager"];z.get_instance=function(){return z._instance};z.__super__=da;z.prototype=r(da.prototype,{configureGame:function(){da.prototype.configureGame.call(this); this._backgroundColor=12303291;this._onGamePause=new ja;this._onGameResume=new ja;z.controlScheme=ua.isMobile()?"controlsPointeronly":"controlsKeyboard";for(var a=Ub.getPaths("com.game.components,true,"),b,c=0,d=a.length;ca.radius&&(a.radius=2),2<=a.radius?(d=new bd(c,new Da(b.x,b.y)),c=new Ee(a.radius)):(d=new bd(c,new Da(b.x+0.5*a.width,b.y+0.5*a.height)),c=new oc(oc.box(Math.abs(a.width),Math.abs(a.height))))):(d=new bd(c,new Da(b.x,b.y)),c=new oc(oc.box(Math.abs(a.width),Math.abs(a.height))),c.translate(new Da(a.offset.x,a.offset.y)));d.zpp_inner.wrap_shapes.add(c); if(null!=d){0a};N.getPowerOf2=function(a){return Math.pow(2,a)};N.prototype={__class__:N};var Fe=function(a,b,c,d,e,i,p,f,j){this.rotation=this.skewX=this.skewY=this.regX=this.regY=0;this.scaleX=this.scaleY=1;this.x=this.y=0;this.x=a;this.y=b;this.scaleX=c;this.scaleY=d;this.rotation=e;this.skewX=i;this.skewY=p;this.regX=f;this.regY=j};h["com.game.data_formats.CjsTransform"]=Fe;Fe.__name__=["com","game","data_formats","CjsTransform"];Fe.prototype={clone:function(){return new Fe(this.x,this.y,this.scaleX, this.scaleY,this.rotation,this.skewX,this.skewY,this.regX,this.regY)},mergeData:function(a){null!=a.x&&(this.x=a.x);null!=a.y&&(this.y=a.y);null!=a.scaleX&&(this.scaleX=a.scaleX);null!=a.scaleY&&(this.scaleY=a.scaleY);null!=a.rotation&&(this.rotation=a.rotation);null!=a.skewX&&(this.skewX=a.skewX);null!=a.skewY&&(this.skewY=a.skewY);null!=a.regX&&(this.regX=a.regX);null!=a.regY&&(this.regY=a.regY);return this},__class__:Fe};var ga=function(a,b){null==b&&(b=30);this._element=null;this._fps=30;this._currentKeyframe= this._currentTime=0;this._paused=!0;this._timeline=[];this._element=a;this._baseTransform=new Fe(0,0,1,1,0,0,0,0,0);this._fps=b;this._matrix=new xe};h["com.game.data_formats.CjsInterpreter"]=ga;ga.__name__=["com","game","data_formats","CjsInterpreter"];ga.prototype={setTransform:function(a,b,c,d,e,i,p,f,j){this._baseTransform.x=a;this._baseTransform.y=b;this._baseTransform.scaleX=c;this._baseTransform.scaleY=d;this._baseTransform.rotation=e;this._baseTransform.skewX=i;this._baseTransform.skewY=p; this._baseTransform.regX=f;this._baseTransform.regY=j;this._currentTransform=this._baseTransform;this.composeFrame(a,b,c,d,e,i,p,f,j);return this},to:function(a,b,c){var d=this._currentTransform;0=this._timeline[this._currentKeyframe].time&&(null!=this._timeline[this._currentKeyframe].transform&&(this._currentTransform=this._timeline[this._currentKeyframe].transform),this._currentKeyframe++,this._currentTime=0,this._currentKeyframe>=this._timeline.length&&(this._currentKeyframe=this._timeline.length-1,this._currentTime=this._timeline[this._currentKeyframe].time, this._paused=!0));if(null==this._timeline[this._currentKeyframe].transform)return this.composeFrame(this._currentTransform.x,this._currentTransform.y,this._currentTransform.scaleX,this._currentTransform.scaleY,this._currentTransform.rotation,this._currentTransform.skewX,this._currentTransform.skewY,this._currentTransform.regX,this._currentTransform.regY);var b=this._currentTime/this._timeline[this._currentKeyframe].time,a=b;null!=this._timeline[this._currentKeyframe].easing&&(a=this._timeline[this._currentKeyframe].easing(b)); var b=this.tween(this._currentTransform.x,this._timeline[this._currentKeyframe].transform.x,a),c=this.tween(this._currentTransform.y,this._timeline[this._currentKeyframe].transform.y,a),d=this.tween(this._currentTransform.scaleX,this._timeline[this._currentKeyframe].transform.scaleX,a),e=this.tween(this._currentTransform.scaleY,this._timeline[this._currentKeyframe].transform.scaleY,a),i=this.tween(this._currentTransform.rotation,this._timeline[this._currentKeyframe].transform.rotation,a),p=this.tween(this._currentTransform.skewX, this._timeline[this._currentKeyframe].transform.skewX,a),f=this.tween(this._currentTransform.skewY,this._timeline[this._currentKeyframe].transform.skewY,a),j=this.tween(this._currentTransform.regX,this._timeline[this._currentKeyframe].transform.regX,a),a=this.tween(this._currentTransform.regY,this._timeline[this._currentKeyframe].transform.regY,a);this.composeFrame(b,c,d,e,i,p,f,j,a)}},composeFrame:function(a,b,c,d,e,i,p,f,j){this._matrix.identity();this._matrix.composeFromCjsTransform(a,b,c,d,e, i,p,f,j);null!=this._element&&this._element.css({transform:"matrix("+this._matrix.m00+","+this._matrix.m10+","+this._matrix.m01+","+this._matrix.m11+","+this._matrix.m02+","+this._matrix.m12+")"})},rewind:function(){this._currentTime=this._currentKeyframe=0;this._currentTransform=this._baseTransform;this.composeFrame(this._currentTransform.x,this._currentTransform.y,this._currentTransform.scaleX,this._currentTransform.scaleY,this._currentTransform.rotation,this._currentTransform.skewX,this._currentTransform.skewY, this._currentTransform.regX,this._currentTransform.regY);return this},set_paused:function(a){return this._paused=a},__class__:ga};var M=function(){this._isNewHighscore=!1;this._currentCombo=this._currentScore=this._sessionScore=this._highScore=0;this._scoreSaved=this._levelScoreAdded=!1;this._maximumPossiblePoints=this._currentParty=0;this.STAR_RATIOS=[0.2,0.5];this.POINTS_PER_LEVEL=0;this.BASE_POINTS=this.PERCENTAGE_POINTS=50;this.POINTS_PER_SECOND_LEFT=this.POINTS_PER_FINAL_SECONDS_LEFT=10;this.fetchStats(); this.POINTS_PER_SECOND_LEFT=v.getJsonConfigValue("general","pointsPerSecondLeft");this.POINTS_PER_FINAL_SECONDS_LEFT=v.getJsonConfigValue("general","pointsPerFinalSecondsLeft");this.BASE_POINTS=v.getJsonConfigValue("general","basePoints");this.PERCENTAGE_POINTS=v.getJsonConfigValue("general","percentagePoints");this.POINTS_PER_LEVEL=v.getJsonConfigValue("general","pointsPerLevel")};h["com.game.managers.ScoreManager"]=M;M.__name__=["com","game","managers","ScoreManager"];M.get_instance=function(){null== M._instance&&(M._instance=new M);return M._instance};M.prototype={addPoints:function(a){this._currentScore+=a;aa.get().displayScoreValue(this._currentScore);return a},findObject:function(a,b){this._currentCombo++;aa.get().displayComboValue(this._currentCombo);aa.get().playComboAnim();if(1this._highScore&&(this._highScore=this._sessionScore))},restartLevel:function(){this.saveHighScore();this._levelScoreAdded&&(this._sessionScore-=this._currentScore)},save:function(){this._scoreSaved||(this._scoreSaved=!0,this._sessionScore>=this._highScore&&(this._highScore= this._sessionScore,this.saveHighScore()))},saveHighScore:function(){Kb.set("highScore",q.string(this._highScore),"999y")},getStarsFromCurrentScore:function(){return this.getStarsFromScore(this._currentScore)},getStarsFromScore:function(a){return a=a&&0!=a&&y.get().get_gameRunning()?this._timerAnimActivated||(O.get_instance().playSound(m.endpartycountdown),this._timerAnim.play(!0),this._timerAnimActivated=!0):this._timerAnimActivated&&(this._timerAnimActivated=!1,this._timerAnim.stop().rewind())}},addBalloonFloatingTime:function(a,b){var c=this,d=new $(window.document.createElement("p"));d.addClass("floatingTime"); d.text(pa.replace(V.instance.getTextFromId("addedTime"),"{{number}}",q.string(v.getJsonConfigValue("general","addedTimePerBalloon"))));d.css({top:q.string((b|0)+40)+"px",left:q.string((a|0)+40)+"px",opacity:1});d.animate({top:"-=75",opacity:"0"},1500,null,function(){d.remove();G.remove(c._floatingPointsList,d)});this._floatingPointsContainer.append(d);this._floatingPointsList.push(d)},addFloatingPoints:function(a,b){var c=this,d=new $(window.document.createElement("p"));d.addClass("floatingPoints"); d.text("+"+(null==a?"null":""+a));d.css({top:"450px",left:(null==b?"null":""+b)+"px",opacity:1});d.animate({top:"-=75",opacity:"0"},1500,null,function(){d.remove();G.remove(c._floatingPointsList,d)});this._floatingPointsContainer.append(d);this._floatingPointsList.push(d)},removeFloatingPoints:function(){for(var a=0,b=this._floatingPointsList.length;a"+q.string(y.get().get_currentLevelIndex()+1)+""));this._finalScore.text(z.get_instance().getFormattedScore(M.get_instance().get_sessionScore()));this._highestScore.text(z.get_instance().getFormattedScore(M.get_instance().get_highScore()));this.rewindPoniesAnimation();D.getTimer(0.15,!1,!0,function(){a.playPoniesAnimation()},!0)},initPoniesAnimation:function(){var a={get:function(a){return xa.get(a)}},b=new ga(this._viewElement.find(".ch_twilight"),30),c=new ga(this._viewElement.find(".ch_rainbow"), 30),d=new ga(this._viewElement.find(".ch_rarity"),30),e=new ga(this._viewElement.find(".ch_pinkie"),30),i=new ga(this._viewElement.find(".ch_apple"),30),p=new ga(this._viewElement.find(".ch_fluttershy"),30);b.setTransform(680.6,338.7,0.88,0.88,1.7,0,0,93.3,154.8);b.to({regX:93.4,regY:154.7,rotation:0.5,x:660.1,y:338.6},6,a.get(-1)).to({regY:154.8,rotation:0,x:643.1,y:338.7},5,a.get(1)).to({x:638.6},6,a.get(1)).wait(74);c.setTransform(691.7,339.4,0.685,0.685,1.7,0,0,75.2,156.3);c.to({rotation:0.8, x:706.8,y:341},7,a.get(-1)).to({regY:156.2,rotation:0,x:727.9,y:342.6},7,a.get(1)).to({x:728.9},5,a.get(1)).wait(72);d.setTransform(694.4,308.9,0.57,0.57,-1,0,0,73.9,151.3);d.to({regY:151.2,rotation:-1.5,x:729.7},7,a.get(-1)).to({regX:74,regY:151.3,rotation:0,x:779.9,y:310.4},8,a.get(1)).to({x:783.7},6,a.get(1)).wait(70);e.setTransform(170.6,327,0.887,0.887,5.7,0,0,82.9,166.6);e.to({regY:166.5,scaleX:0.89,scaleY:0.89,rotation:7,x:189.6,y:327.1},6,a.get(-1)).to({regY:166.6,rotation:7.8,x:202},5,a.get(1)).to({scaleX:0.89, scaleY:0.89,rotation:7.9,x:205.6},6,a.get(1)).wait(74);i.setTransform(172,328.6,0.744,0.744,-2.2,0,0,77.8,161.8);i.to({rotation:-0.8,x:154.6,y:329.4},7,a.get(-1)).to({rotation:0,x:131.7,y:329.9},7,a.get(1)).to({x:130.8},6,a.get(1)).wait(71);p.setTransform(157.9,324,0.612,0.612,0.2,0,0,76.3,146);p.to({rotation:1.7,x:124.6,y:323.6},7,a.get(-1)).to({rotation:0,x:68.2,y:320.7},8,a.get(1)).to({x:65.3},6,a.get(1)).wait(70);this._poniesAnimation.push(b);this._poniesAnimation.push(c);this._poniesAnimation.push(d); this._poniesAnimation.push(e);this._poniesAnimation.push(i);this._poniesAnimation.push(p)},rewindPoniesAnimation:function(){for(var a=0,b=this._poniesAnimation.length;a f;){var j=f++,g=Z.get(!0,"gameAssets.json",z.get_instance().get_sharedAssets()).getImage("game-"+y.PONIES[e]);g.centerAnchor();g.disablePointer();g.disablePixelSnapping();p[j]=a.createSprite(y.PONYANIMS[j],!0);p[j].setXY(i.x,i.y);p[j].disablePointer();p[j].getLayer("char");p[j].getLayer("char").getComponent("Sprite_1").disablePixelSnapping();p[j].getLayer("char").addChild((new A).add(g));p[j].set_visible(!1);p[j].set_paused(!0);this.owner.addChild((new A).add(p[j]))}this._ponyAnims[e]={enter:p[0], ask:p[1],yes:p[2],no:p[3]}}},hideAllPonyAnims:function(a){this._ponyAnims[a].enter.set_visible(!1);this._ponyAnims[a].enter.set_paused(!0);this._ponyAnims[a].ask.set_visible(!1);this._ponyAnims[a].ask.set_paused(!0);this._ponyAnims[a].yes.set_visible(!1);this._ponyAnims[a].yes.set_paused(!0);this._ponyAnims[a].no.set_visible(!1);this._ponyAnims[a].no.set_paused(!0)},playPonyAnim:function(a,b){this.hideAllPonyAnims(a);var c=this._ponyAnims[a][b];c.set_visible(!0);c.rewindMovie().set_paused(!1)},createTimers:function(){var a= (B._platform.getStage().get_width()-320)/5;this._visualTimersContainers=[];this._visualTimers=[];this._visualTimersImages=[];B._platform.getStage().get_width();for(var b=0;6>b;){var c=b++;this._visualTimersContainers[c]=new de(16777215,24);this._visualTimersContainers[c].x.set__(125+a*c);this._visualTimersContainers[c].y.set__(B._platform.getStage().get_height()-95);this._visualTimersContainers[c].centerAnchor();this._visualTimersContainers[c].disablePointer();this._visualTimersContainers[c].set_visible(!1); var d=Z.get(!0,"gameAssets.json",z.get_instance().get_sharedAssets()).getImage("timer-bubble-overlay");d.anchorX.set__(0.5*d.getNaturalWidth());d.anchorY.set__(d.anchorX._value);d.x.set__(24);d.y.set__(24);d.disablePointer();this._visualTimers[c]=new de(3150957,24,0.5*-Math.PI,0.5*-Math.PI);this._visualTimers[c].x.set__(24);this._visualTimers[c].y.set__(24);this._visualTimers[c].alpha.set__(0.5);this._visualTimers[c].centerAnchor();this._visualTimers[c].disablePointer();this._visualTimers[c].disablePixelSnapping(); this._visualTimersImages[c]=new nc(null);this._visualTimersImages[c].x.set__(24);this._visualTimersImages[c].y.set__(24);this._visualTimersImages[c].disablePointer();this.owner.addChild((new A).add(this._visualTimersContainers[c]));this._visualTimersContainers[c].owner.addChild((new A).add(this._visualTimersImages[c]));this._visualTimersContainers[c].owner.addChild((new A).add(this._visualTimers[c]));this._visualTimersContainers[c].owner.addChild((new A).add(d))}},createFlags:function(){this._flagAnims= [];var a=this._bedroom.getObjectByName("Flags");a.deactivate();for(var b=1;25>b;){for(var c=b++,d="flag"+c+"_00",e=a.getChildByName(d+"01"),i=new ub("anims/flags.json",z.get_instance().get_sharedAssets(),30,!1,!0),p=[],f=1;57>f;){var j=f++;p.push(d+G.substr("0"+(null==j?"null":""+j),-2,null));if(56==j)for(var g=0;30>g;)g++,p.push(d+G.substr("0"+(null==j?"null":""+j),-2,null))}i.addAnimation("flag"+c,p);this.owner.addChild((new A).add(i.get_animElement()));i.get_animElement().setXY(e.x._value,e.y._value); i.gotoAnim("flag"+c,!0);i.get_animElement().disablePointer();this._flagsLayer.addChild((new A).add(i.get_animElement()));this.owner.addChild((new A).add(i))}},createCanons:function(){this._canons=[];this._confettisPaths=[];this._confettisExplosions=[];var a=new A;this.owner.addChild(a);this._canonsAnim=new H;this._canonsAnim.set_visible(!1);a.add(this._canonsAnim);for(var b=new yd(z.get_instance().get_sharedAssets(),"anims/paths"),c=0;8>c;){var d=c++,e=new ub("anims/confettisBall.json",z.get_instance().get_sharedAssets(), 24,!0,!0,"_all");e.get_animElement().setAnchor(22,21);var i=new ub("anims/confettis.json",z.get_instance().get_sharedAssets(),24,!1,!1,"_all");i.get_animElement().setAnchor(130,70);var p=b.createMovie("path"+q.string(d%4+1),null),f=b.createMovie("explosion"+q.string(d%4+1),null);p.getLayer("confettis_boule").addChild((new A).add(e.get_animElement()));f.getLayer("confettis_explose").addChild((new A).add(i.get_animElement()));3b;)c=b++,this._confettisPaths[c].rewindMovie().set_paused(!1), this._confettisPaths[c].set_visible(!0),this._confettisExplosions[c].rewindMovie().set_paused(!1),this._confettisExplosions[c].set_visible(!0);D.getTimer(2.5,!1,!0,function(){a._canonsAnim.set_visible(!1)},!0)},initBedroomLevel:function(){this._bedroom=new S("Bedroom");this._bedroom.get_world().setXY(0,0);S.levelLayer.addChild(this._bedroom.get_container())},loadBedroomLevel:function(){this._bedroom.load(x(this,this.onBedroomLevelLoaded))},onBedroomLevelLoaded:function(){var a=this;this.createFlags(); this.initObjects();this.resetAllObjects();Jb.delay(function(){qc.get().onShow.connect(function(){a.readyFromTitleScreen()}).once();qc.showView();Kb.set("tutorialPopupShown","true","999y")},1)},initObjects:function(){this._objectsList=[];this._objectsMap=new u;this._usedObjects=[];for(var a=0,b=this._allObjects.length;ab;){var c=b++;this._ponyAnims[c].enter.rewindMovie();this._ponyAnims[c].enter.set_paused(!0);this.hideAllPonyAnims(c);D.getTimer(0.1*c,!1,!0,function(b){return function(){a.playPonyAnim(b,"enter");a._ponyAnims[b].enter.get_looped().connect(function(){a._ponyAnims[b].enter.set_paused(!0); a._ponyAnims[b].enter.set_position(a._ponyAnims[b].enter.symbol.duration)}).once()}}(c),!0)}null!=this._startSpawnNeedTimer&&this._startSpawnNeedTimer.pool();this._startSpawnNeedTimer=D.getTimer(1.7,!1,!0,function(){a._gameRunning=!0;a.spawnNewNeed();a._startSpawnNeedTimer=null},!0)},restartGame:function(){this.resetGame();this.start()},restartCompleteGame:function(){this.resetAllStats();this.resetGame();this.start()},nextParty:function(){this._currentLevelIndex++;aa.get().displayCurrentParty(this._currentLevelIndex+ 1);M.get_instance().nextParty(this._currentLevelIndex);this.restartGame()},emptyTimer:function(){},onUpdate:function(a){H.prototype.onUpdate.call(this,a);this._gameRunning&&(this.updateCurrentNeeds(a),this._gameTimer-=a,this._gameHud.displayTimerValue(this._gameTimer),0>=this._gameTimer?this.outOfTime():(this._timeBeforeNextNeed-=a,0>=this._timeBeforeNextNeed&&(this.spawnNewNeed(),this.resetNeedTimer()),this._currentBalloonTime-=a,0>=this._currentBalloonTime&&(this.spawnBalloon(),this.randomizeNextBalloonTime())))}, computeLevelTime:function(){var a=v.getJsonConfigValue("general","maximumPartyClockTime"),b=v.getJsonConfigValue("general","minimumPartyClockTime"),c=v.getJsonConfigValue("general","baseLevelTime"),d=v.getJsonConfigValue("general","timePerLevel"),e=v.getJsonConfigValue("general","levelTresholdForTimeDecrease"),i=v.getJsonConfigValue("general","levelsToRemove"),f=v.getJsonConfigValue("general","timeMultiplicator"),g=this._currentLevelIndex+1;return g>=e?q["int"](Math.max(b,a-(g-i)*f)):q["int"](Math.min(c+ this._currentLevelIndex*d,a))},computeNumberOfNeeds:function(){var a=v.getJsonConfigValue("general","baseNeeds"),b=v.getJsonConfigValue("general","needsPerLevel"),c=v.getJsonConfigValue("general","maxNeeds");return q["int"](Math.min(a+b*this._currentLevelIndex,c))},computeNeedTime:function(){var a=v.getJsonConfigValue("general","needTimeDecreaseLevelTreshold"),b=v.getJsonConfigValue("general","baseNeedTime"),c=v.getJsonConfigValue("general","needTimePerLevel"),d=v.getJsonConfigValue("general","minNeedTime"); return Math.max(b-Math.max(this._currentLevelIndex-(a-1),0)*c,d)},computeMinMaxTimeBetweenNeeds:function(){var a=v.getJsonConfigValue("general","minTimeDecreasePerLevel"),b=v.getJsonConfigValue("general","maxTimeDecreasePerLevel"),c=v.getJsonConfigValue("general","minMinTimeBetweenNeeds"),d=v.getJsonConfigValue("general","minMaxTimeBetweenNeeds");this._minTimeBetweenNeed=Math.max(v.getJsonConfigValue("general","minTimeBetweenNeeds")-this._currentLevelIndex*a,c);this._maxTimeBetweenNeed=Math.max(v.getJsonConfigValue("general", "maxTimeBetweenNeeds")-this._currentLevelIndex*b,d)},resetGame:function(){this.computeMinMaxTimeBetweenNeeds();this.resetNeedTimer();this._gameTimer=this.computeLevelTime();this._timeForNeed=this.computeNeedTime();this._gameHud.displayTimerValue(this._gameTimer);this.removeAllBalloons();this.removeNeedsFound();this.removeAllNeeds();aa.get().removeFloatingPoints();this._requiredNeeds=this.computeNumberOfNeeds();this._resolvedNeeds=0;M.get_instance().reset();M.get_instance().computeMaximumPossiblePoints(this._timeForNeed, this._requiredNeeds);this.randomizeShownObjects();this.randomizeNextBalloonTime();aa.get().displayNbItemsFound(this._resolvedNeeds,this._requiredNeeds)},resetAllVisualTimers:function(){for(var a=0;6>a;)this._visualTimers[a++].angleRadEnd.set__(0)},removeNeedsFound:function(){for(;0=this._requiredNeeds&&this.lastNeedFound(),aa.get().displayNbItemsFound(this._resolvedNeeds, this._requiredNeeds))},onNeedFoundAnimationComplete:function(a){G.remove(this._needsFound,a);this._visualTimersContainers[a.ponyIndex].set_visible(!1);this._currentNeedsInPlay--;if(0==this._needsFound.length){if(this._resolvedNeeds>=this._requiredNeeds){this.winGame();return}if(!this._gameRunning){this.loseGame();return}}0==this._currentNeedsInPlay&&(this.spawnNewNeed(),this.resetNeedTimer())},spawnNewNeed:function(){this._currentNeedsInPlay>=y.MAX_NEEDS_AT_SAME_TIME||this._currentNeedsInPlay+this._resolvedNeeds>= this._requiredNeeds||(this.initAndDisplayNeed({objectId:this.getRandomAvailableObject(),timeLeft:this._timeForNeed,ponyIndex:this.getRandomAvailablePony(),ready:!1,askConnection:null,yesConnection:null,currentAnimTimer:null,currentAnimObj:null}),this._currentNeedsInPlay++,O.get_instance().playSound(m.newneed))},initAndDisplayNeed:function(a){var b=this;this.playPonyAnim(a.ponyIndex,"ask");a.askConnection=this._ponyAnims[a.ponyIndex].ask.get_looped().connect(function(){b._ponyAnims[a.ponyIndex].ask.set_paused(!0); b._ponyAnims[a.ponyIndex].ask.set_position(b._ponyAnims[a.ponyIndex].ask.symbol.duration);var c=F.__cast(b._onScreenObjects[a.objectId].visual,nc).texture;b._visualTimersImages[a.ponyIndex].texture=c;b._visualTimersImages[a.ponyIndex].setScale(Math.min(36/c.get_width(),36/c.get_height()));b._visualTimersImages[a.ponyIndex].centerAnchor();b._visualTimersContainers[a.ponyIndex].set_visible(!0);null==b._onScreenObjects[a.objectId].config.userData&&(b._onScreenObjects[a.objectId].config.userData={}); b._onScreenObjects[a.objectId].config.userData.need=a;a.ready=!0;a.askConnection=null;b.setVisualTimerTime(a.ponyIndex,a.timeLeft);b._visualTimers[a.ponyIndex].set_visible(!0)}).once();this._currentNeeds.push(a)},getRandomAvailableObject:function(){return this._unfoundObjects.splice(q.random(this._unfoundObjects.length),1)[0]},getRandomAvailablePony:function(){for(var a=[0,1,2,3,4,5],b=0,c=this._currentNeeds.length;b=this._currentNeeds[b].timeLeft?this.needTimeElapsed(this._currentNeeds[b]):this.setVisualTimerTime(this._currentNeeds[b].ponyIndex,this._currentNeeds[b].timeLeft))},needFound:function(a){var b=this;this._needsFound.push(a);G.remove(this._currentNeeds,a);null!=this._onScreenObjects[a.objectId].config.userData&&(this._onScreenObjects[a.objectId].config.userData.need=null);(function(a){b._onScreenObjects[a.objectId].deactivate();var d=b._onScreenObjects[a.objectId].visual,e=ca.removeFileExtension(b._onScreenObjects[a.objectId].config.imageFileName), e=e.substring(e.lastIndexOf("/")+1),i=Z.getFromCache("Bedroom").getImage("glow/"+e);b._foundObjectsLayer.owner.addChild((new A).add(i));i.setXY(d.x._value,d.y._value);i.setScaleXY(d.scaleX._value,d.scaleY._value);i.centerAnchor();i.rotation.set__(d.rotation._value);i.disablePixelSnapping();i.disablePointer();i.scaleX.animateTo(1.2*i.scaleX._value,0.3,xa.backOut);i.scaleY.animateTo(1.2*i.scaleY._value,0.3,xa.backOut);a.currentAnimObj=i;a.currentAnimTimer=D.getTimer(0.7,!1,!0,function(){var d=b._ponyPositions[a.ponyIndex].distanceTo(i.x._value, i.y._value)/1E3;i.x.animateTo(b._ponyPositions[a.ponyIndex].x-y.PONY_BASE_OFFSET_FROM_LEFT,d);i.y.animateTo(b._ponyPositions[a.ponyIndex].y-y.PONY_BASE_OFFSET_FROM_BOTTOM-25,d);a.currentAnimTimer=D.getTimer(d,!1,!0,function(){i.set_visible(!1);i.owner.dispose();a.currentAnimObj=null;a.currentAnimTimer=null;aa.get().addFloatingPoints(M.get_instance().findObject(a.timeLeft,b._timeForNeed),b._ponyPositions[a.ponyIndex].x-y.PONY_BASE_OFFSET_FROM_LEFT|0);b._visualTimersImages[a.ponyIndex].texture=Z.get(!0, "gameAssets.json",z.get_instance().get_sharedAssets()).getImageSubTexture("icon-win");b._visualTimersImages[a.ponyIndex].setScale(1);b._visualTimersImages[a.ponyIndex].centerAnchor();b._visualTimers[a.ponyIndex].set_visible(!1);b.playPonyAnim(a.ponyIndex,"yes");a.yesConnection=b._ponyAnims[a.ponyIndex].yes.get_looped().connect(function(){a.yesConnection=null;b._ponyAnims[a.ponyIndex].yes.set_paused(!0);b._ponyAnims[a.ponyIndex].yes.set_position(b._ponyAnims[a.ponyIndex].yes.symbol.duration);b.onNeedFoundAnimationComplete(a)}).once()}, !0)},!0)})(a)},removeNeed:function(a,b){null==b&&(b=!1);var c=this;this._visualTimersContainers[a.ponyIndex].set_visible(!1);null!=this._onScreenObjects[a.objectId].config.userData&&(this._onScreenObjects[a.objectId].config.userData.need=null);null!=a.askConnection&&(a.askConnection.dispose(),a.askConnection=null);b&&(this.playPonyAnim(a.ponyIndex,"no"),this._ponyAnims[a.ponyIndex].no.get_looped().connect(function(){c._ponyAnims[a.ponyIndex].no.set_paused(!0);c._ponyAnims[a.ponyIndex].no.set_position(c._ponyAnims[a.ponyIndex].no.symbol.duration)}).once()); G.remove(this._currentNeeds,a)},needTimeElapsed:function(a){var b=this;this._unfoundObjects.push(a.objectId);null!=this._onScreenObjects[a.objectId].config.userData&&(this._onScreenObjects[a.objectId].config.userData.need=null);this._visualTimersImages[a.ponyIndex].texture=Z.get(!0,"gameAssets.json",z.get_instance().get_sharedAssets()).getImageSubTexture("icon-lose");this._visualTimersImages[a.ponyIndex].setScale(1);this._visualTimersImages[a.ponyIndex].centerAnchor();this._visualTimers[a.ponyIndex].set_visible(!1); a.ready=!1;this.playPonyAnim(a.ponyIndex,"no");this._ponyAnims[a.ponyIndex].no.get_looped().connect(function(a){return function(){b._ponyAnims[a.ponyIndex].no.set_paused(!0);b._ponyAnims[a.ponyIndex].no.set_position(b._ponyAnims[a.ponyIndex].no.symbol.duration);b.removeNeed(a);b._currentNeedsInPlay--;null}}(a)).once();M.get_instance().resetCombo();aa.get().displayComboBreaker(this._ponyPositions[a.ponyIndex].x-y.PONY_BASE_OFFSET_FROM_LEFT|0);O.get_instance().playSound(m.combobreaker)},addBalloonTime:function(a){this._gameTimer+= v.getJsonConfigValue("general","addedTimePerBalloon");aa.get().addBalloonFloatingTime(a.x._value,a.y._value)},spawnBalloon:function(){var a=Ia.createRandom();this._balloonContainer.addChild((new A).add(a));this._currentBalloons.push(a)},removeBalloon:function(a){G.remove(this._currentBalloons,a);this._balloonContainer.removeChild(a.owner)},removeAllBalloons:function(){for(;0b;){var c=b++;this._starsAnimatedValues[c].watch(function(b){return function(c){a.updateStarScale(b,c)}}(c))}this.initPoniesAnimation()},updateVolumeButton:function(){this.setVolumeButtonState(O.get_instance().get_isMuted())},setVolumeButtonState:function(a){null!=this._viewElement&&(!1==a?(this._viewElement.find("#btn_ss_toggleSound_on").show(),this._viewElement.find("#btn_ss_toggleSound_off").hide()):(this._viewElement.find("#btn_ss_toggleSound_on").hide(), this._viewElement.find("#btn_ss_toggleSound_off").show()))},handleButtonClick:function(a){var b=this;switch(a.attr("id")){case "btn_ss_backToHome":this.hide();M.get_instance().saveHighScore();y.get().quitToHome();break;case "btn_ss_stats":db.showView(!0);break;case "btn_ss_nextParty":M.get_instance().save();yb.get().onShow.connect(function(){b.hide()}).once();yb.showView();break;case "btn_ss_restart":hasbroTrack("replay"),M.get_instance().restartLevel(),y.get().restartGame(),y.get().set_caller(this.viewDivId), y.get().show(),this.hide()}},handleButtonDown:function(a,b){C.prototype.handleButtonDown.call(this,a,b);switch(a.attr("id")){case "btn_ss_toggleSound_on":this.setVolumeButtonState(!0);O.get_instance().triggerMute(!0,0);break;case "btn_ssp_toggleSound_off":this.setVolumeButtonState(!1),O.get_instance().triggerMute(!0,1)}},onUpdate:function(a){C.prototype.onUpdate.call(this,a);this._firstContainerAnimationValue.update(a);this._secondContainerAnimationValue.update(a);for(var b=0;3>b;)this._starsAnimatedValues[b++].update(a); for(var b=0,c=this._poniesAnimation.length;bb;)this._stars[b++].hide();this.rewindPoniesAnimation();this._firstContainer.css({"transform-origin":"50% 48%",transform:"scale("+q.string(6)+")",opacity:0});this._secondContainer.css({"transform-origin":"50% 61%",transform:"scale("+q.string(6)+")",opacity:0});D.getTimer(0.15,!1,!0,function(){a._firstContainerAnimationValue.animate(6, 1,0.4,xa.expoOut);D.getTimer(0.3,!1,!0,function(){a._secondContainerAnimationValue.animate(6,1,0.4,xa.expoOut)},!0);D.getTimer(1.1,!1,!0,function(){for(var b=M.get_instance().getStarsFromCurrentScore(),d=0;dd;)e=d++,this._existingPanels[c].find(".star"+(e+1)).hide();this._existingPanels[c].show()}},handleButtonClick:function(a){switch(a.attr("id")){case "btn_statsWindow_backToHome":this._statsWindowContainer.hide(),this.hide()}},__class__:sc});var db=function(){this._currentPage=this._nbPages=0;this.viewDivId="statsScreen";this.viewFile= "statsScreen.html";this._poniesAnimation=[];C.call(this,!0)};h["com.game.views.StatsScreen"]=db;db.__name__=["com","game","views","StatsScreen"];db.get=function(){return L.get_instance().getView(db)};db.showView=function(a){null==a&&(a=!1);L.get_instance().showView(db,a)};db.__super__=C;db.prototype=r(C.prototype,{build:function(){C.prototype.build.call(this);this._levelScorePanel=this._viewElement.find(".levelScorePanel");this._levelScorePanel.detach();this._existingPanels=[];this._dot=this._viewElement.find(".dot"); this._dot.detach();this._dotContainerModel=this._viewElement.find(".dotContainer");this._dotContainerModel.detach();this._dotContainers=[];this.initPoniesAnimation();var a=new $("#generatingImage"),b=a.data("loc-id");null!=b&&0e;)i=e++,this._existingPanels[d].find(".star"+(i+1)).hide()}this._nbPages=q["int"](Math.max(1, Math.ceil(M.get_instance().get_stats().length/6)));for(this._dot.detach();this._dotContainers.lengthc.timeStamp-d)){var e=b.getBoundingClientRect(),i=a.getX(c,e),e=a.getY(c,e);switch(c.type){case "mousedown":c.target== b&&(c.preventDefault(),a._mouse.submitDown(i,e,c.button),b.focus());break;case "mousemove":a._mouse.submitMove(i,e);break;case "mouseup":a._mouse.submitUp(i,e,c.button);break;case "mousewheel":case "DOMMouseScroll":a._mouse.submitScroll(i,e,"mousewheel"==c.type?c.wheelDelta/40:-c.detail)&&c.preventDefault()}}};window.addEventListener("mousedown",e,!1);window.addEventListener("mousemove",e,!1);window.addEventListener("mouseup",e,!1);b.addEventListener("mousewheel",e,!1);b.addEventListener("DOMMouseScroll", e,!1);b.addEventListener("contextmenu",function(a){a.preventDefault()},!1);var i="undefined"!=typeof window.ontouchstart,e="msMaxTouchPoints"in window.navigator&&1a&&(a=-1);1a?b*(b*-a+1+a):b*((2-b)*a+(1-a))}};var rc=function(a,b,c,d){this._from=a;this._to=b;this._duration=c;this.elapsed=0;this._easing=null!=d?d:xa.linear};h["flambe.animation.Tween"]=rc;rc.__name__=["flambe","animation","Tween"];rc.__interfaces__=[Ef];rc.prototype={update:function(a){this.elapsed+=a;return this.elapsed>=this._duration?this._to:this._from+(this._to-this._from)*this._easing(this.elapsed/this._duration)},isComplete:function(){return this.elapsed>=this._duration},__class__:rc};var dd= function(){};h["flambe.asset.Asset"]=dd;dd.__name__=["flambe","asset","Asset"];dd.__interfaces__=[Ha];dd.prototype={__class__:dd};var t=h["flambe.asset.AssetFormat"]={__ename__:!0,__constructs__:"WEBP,JXR,PNG,JPG,GIF,DDS,PVR,PKM,MP3,M4A,OPUS,OGG,WAV,Data".split(",")};t.WEBP=["WEBP",0];t.WEBP.toString=k;t.WEBP.__enum__=t;t.JXR=["JXR",1];t.JXR.toString=k;t.JXR.__enum__=t;t.PNG=["PNG",2];t.PNG.toString=k;t.PNG.__enum__=t;t.JPG=["JPG",3];t.JPG.toString=k;t.JPG.__enum__=t;t.GIF=["GIF",4];t.GIF.toString= k;t.GIF.__enum__=t;t.DDS=["DDS",5];t.DDS.toString=k;t.DDS.__enum__=t;t.PVR=["PVR",6];t.PVR.toString=k;t.PVR.__enum__=t;t.PKM=["PKM",7];t.PKM.toString=k;t.PKM.__enum__=t;t.MP3=["MP3",8];t.MP3.toString=k;t.MP3.__enum__=t;t.M4A=["M4A",9];t.M4A.toString=k;t.M4A.__enum__=t;t.OPUS=["OPUS",10];t.OPUS.toString=k;t.OPUS.__enum__=t;t.OGG=["OGG",11];t.OGG.toString=k;t.OGG.__enum__=t;t.WAV=["WAV",12];t.WAV.toString=k;t.WAV.__enum__=t;t.Data=["Data",13];t.Data.toString=k;t.Data.__enum__=t;var nd=function(a,b, c,d){this.name=a;this.url=b;this.format=c;this.bytes=d};h["flambe.asset.AssetEntry"]=nd;nd.__name__=["flambe","asset","AssetEntry"];nd.prototype={__class__:nd};var Ke=function(){};h["flambe.asset.AssetPack"]=Ke;Ke.__name__=["flambe","asset","AssetPack"];Ke.__interfaces__=[Ha];Ke.prototype={__class__:Ke};var Le=function(){};h["flambe.asset.File"]=Le;Le.__name__=["flambe","asset","File"];Le.__interfaces__=[dd];Le.prototype={__class__:Le};var ka=function(){this._localBase=this._remoteBase=null;this._entries= []};h["flambe.asset.Manifest"]=ka;ka.__name__=["flambe","asset","Manifest"];ka.fromAssets=function(a,b){null==b&&(b=!0);var c=wb.field(se.getType(ka).assets[0],a);if(null==c){if(b)throw ca.withFields("Missing asset pack",["name",a]);return null}var d=new ka;d.set_localBase("assets");for(var e=0;ec?c:a};var xe=function(){this.identity()};h["flambe.math.Matrix"]=xe;xe.__name__=["flambe","math","Matrix"];xe.prototype={set:function(a,b,c,d,e,i){this.m00=a;this.m01=c;this.m02=e;this.m10=b;this.m11=d;this.m12=i},identity:function(){this.set(1,0,0,1,0,0)},append:function(a,b,c,d,e,i){var f=this.m00,g=this.m10,j=this.m01,h=this.m11;if(1!=a||0!=b||0!=c||1!=d)this.m00= f*a+j*b,this.m10=g*a+h*b,this.m01=f*c+j*d,this.m11=g*c+h*d;this.m02=f*e+j*i+this.m02;this.m12=g*e+h*i+this.m12;return this},compose:function(a,b,c,d,e){var i=Math.sin(e),e=Math.cos(e);this.set(e*c,i*c,-i*d,e*d,a,b)},composeFromCjsTransform:function(a,b,c,d,e,i,f,g,j){var h=0,l=0;0!=e%360?(e=3.141592653589793*e/180,h=Math.cos(e),l=Math.sin(e)):(h=1,l=0);0!=i||0!=f?(i=3.141592653589793*i/180,f=3.141592653589793*f/180,this.append(Math.cos(f),Math.sin(f),-Math.sin(i),Math.cos(i),a,b),this.append(h*c, l*c,-l*d,h*d,0,0)):this.append(h*c,l*c,-l*d,h*d,a,b);if(0!=g||0!=j)this.m02-=g,this.m12-=j;return this},translate:function(a,b){this.m02+=this.m00*a+this.m01*b;this.m12+=this.m11*b+this.m10*a},determinant:function(){return this.m00*this.m11-this.m01*this.m10},inverseTransform:function(a,b,c){var d=this.determinant();if(0==d)return!1;a-=this.m02;b-=this.m12;c.x=(a*this.m11-b*this.m01)/d;c.y=(b*this.m00-a*this.m10)/d;return!0},__class__:xe};var Jg=function(){};h["flambe.math.Rectangle"]=Jg;Jg.__name__= ["flambe","math","Rectangle"];Jg.prototype={contains:function(a,b){a-=this.x;if(0<=this.width){if(0>a||a>this.width)return!1}else if(0b||b>this.height)return!1}else if(0=Ya.MAX_PARALLEL_LOADING||0==this._assetsToLoad.length)){this._nbAssetsLoading++;var a=this._assetsToLoad.pop(),b=a.bestEntry,a= a.group;if(null!=b){a=this.manifest.getFullURL(b);try{this.loadEntry(a,b)}catch(c){this.handleError(b,"Unexpected error: "+q.string(c))}a=this.promise;a.set_total(a._total+b.bytes)}else b=a[0],Ya.isAudio(b.format)?this.handleLoad(b,Xb.getInstance()):this.handleError(b,"Could not find a supported format to load")}},onDisposed:function(){},pickBestEntry:function(a,b){this.getAssetFormats(function(c){for(var d=0;d=b)){c.onUpdate(b);return}for(c=a.firstComponent;null!=c;){var d=c.next;0==(c._flags&1)&&(c._flags|=1,c.onStart());c.onUpdate(b);c=d}for(c=a.firstChild;null!=c;)d=c.next,Jc.updateEntity(c,b),c=d};Jc.prototype={update:function(a){if(!(0>=a)){1a.length;)a="0"+q.string(a);this._canvasCtx.fillStyle="#"+q.string(a);this._canvasCtx.fillRect(b|0,c|0,d|0,e|0)}},fillArc:function(a,b,c,d,e,i){if(this._firstDraw)this._firstDraw=!1,this._canvasCtx.globalCompositeOperation="copy",this.fillArc(a,b,c,d,e,i),this._canvasCtx.globalCompositeOperation="source-over";else{for(a=(16777215& a).toString(16);6>a.length;)a="0"+q.string(a);this._canvasCtx.save();this._canvasCtx.beginPath();this._canvasCtx.moveTo(d,d);this._canvasCtx.arc(b|0,c|0,d,e,i,!1);this._canvasCtx.fillStyle="#"+q.string(a);this._canvasCtx.fill();this._canvasCtx.restore()}},multiplyAlpha:function(a){this._canvasCtx.globalAlpha*=a},setBlendMode:function(a){var b;switch(a[1]){case 0:b="source-over";break;case 1:b="lighter";break;case 2:b="multiply";break;case 3:b="screen";break;case 4:b="destination-in";break;case 5:b= "copy"}this._canvasCtx.globalCompositeOperation=b},applyScissor:function(a,b,c,d){this._canvasCtx.beginPath();this._canvasCtx.rect(a|0,b|0,c|0,d|0);this._canvasCtx.clip()},willRender:function(){this._firstDraw=!0},didRender:function(){},__class__:We};var Od=function(a){this.graphics=new We(a,!1);this._hasGPU=new ib(!0)};h["flambe.platform.html.CanvasRenderer"]=Od;Od.__name__=["flambe","platform","html","CanvasRenderer"];Od.__interfaces__=[Ve];Od.prototype={get_type:function(){return Mb.Canvas},createTextureFromImage:function(a){a= new ge(Od.CANVAS_TEXTURES?X.createCanvas(a):a);return a.createTexture(a.width,a.height)},getCompressedTextureFormats:function(){return[]},createCompressedTexture:function(){return null},willRender:function(){this.graphics.willRender()},didRender:function(){this.graphics.didRender()},__class__:Od};var Xe=function(a,b,c){tc.call(this,a,b,c)};h["flambe.platform.html.CanvasTexture"]=Xe;Xe.__name__=["flambe","platform","html","CanvasTexture"];Xe.__super__=tc;Xe.prototype=r(tc.prototype,{__class__:Xe}); var ge=function(a){this._graphics=null;this._disposed=!1;this.image=a;this.width=a.width;this.height=a.height};h["flambe.platform.html.CanvasTextureRoot"]=ge;ge.__name__=["flambe","platform","html","CanvasTextureRoot"];ge.__interfaces__=[Rf];ge.__super__=Xa;ge.prototype=r(Xa.prototype,{createTexture:function(a,b){return new Xe(this,a,b)},onDisposed:function(){this._graphics=this.image=null},__class__:ge});var Y=function(a,b){Ya.call(this,a,b)};h["flambe.platform.html.HtmlAssetPackLoader"]=Y;Y.__name__= ["flambe","platform","html","HtmlAssetPackLoader"];Y.detectImageFormats=function(a){var b=[t.PNG,t.JPG,t.GIF],c=2,d;d=window.document.createElement("img");d.onload=d.onerror=function(){1==d.width&&b.unshift(t.WEBP);--c;0==c&&a(b)};d.src="data:image/webp;base64,UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==";var e;e=window.document.createElement("img");e.onload=e.onerror=function(){1==e.width&&b.unshift(t.JXR);--c;0==c&&a(b)};e.src="data:image/vnd.ms-photo;base64,SUm8AQgAAAAFAAG8AQAQAAAASgAAAIC8BAABAAAAAQAAAIG8BAABAAAAAQAAAMC8BAABAAAAWgAAAMG8BAABAAAAHwAAAAAAAAAkw91vA07+S7GFPXd2jckNV01QSE9UTwAZAYBxAAAAABP/gAAEb/8AAQAAAQAAAA=="}; Y.detectAudioFormats=function(){var a;a=window.document.createElement("audio");if(null==a||null==x(a,a.canPlayType))return[];var b=new Fa("\\b(iPhone|iPod|iPad|Android|Windows Phone)\\b",""),c=window.navigator.userAgent;if(!ma.get_supported()&&b.match(c))return[];for(var b=[{format:t.M4A,mimeType:"audio/mp4; codecs=mp4a"},{format:t.MP3,mimeType:"audio/mpeg"},{format:t.OPUS,mimeType:"audio/ogg; codecs=opus"},{format:t.OGG,mimeType:"audio/ogg; codecs=vorbis"},{format:t.WAV,mimeType:"audio/wav"}],c= [],d=0;dthis.layer.frames)this.content._compMap.Sprite_1.set_visible(!1),this.keyframeIdx=c,this.needsKeyframeUpdate=!0;else{for(;this.keyframeIdxc?(k=1-a,k=1-k*k,c=-c):k=a*a;a=c*k+(1-c)*a}b=b[this.keyframeIdx+ 1];i+=(b.x-i)*a;f+=(b.y-f)*a;g+=(b.scaleX-g)*a;j+=(b.scaleY-j)*a;h+=(b.skewX-h)*a;l+=(b.skewY-l)*a;n+=(b.alpha-n)*a}b=d.getLocalMatrix();a=Math.sin(h);h=Math.cos(h);c=Math.sin(l);l=Math.cos(l);b.set(l*g,c*g,-a*j,h*j,i,f);b.translate(-e.pivotX,-e.pivotY);d.alpha.set__(n)}}}},setPixelSnapping:function(a){for(var b=0,c=this._sprites;bb)return this.mainSection.get(a);var c;c=this.sections.get(G.substr(a,0,b));return null!=c?(a=G.substr(a,b+1,null),c.get(a)):null},__class__:ce};var Pe=function(){this.success=new Q;this.error=new Q;this.progressChanged=new ja;this.hasResult=!1;this._total=this._progress=0};h["flambe.util.Promise"]=Pe;Pe.__name__=["flambe","util","Promise"];Pe.prototype={set_result:function(a){if(this.hasResult)throw"Promise result already assigned";this._result=a;this.hasResult=!0;this.success.emit(a); return a},get:function(a){return this.hasResult?(a(this._result),null):this.success.connect(a).once()},set_progress:function(a){this._progress!=a&&(this._progress=a,this.progressChanged.emit());return a},set_total:function(a){this._total!=a&&(this._total=a,this.progressChanged.emit());return a},__class__:Pe};var ja=function(a){Ka.call(this,a)};h["flambe.util.Signal0"]=ja;ja.__name__=["flambe","util","Signal0"];ja.__super__=Ka;ja.prototype=r(Ka.prototype,{connect:function(a,b){null==b&&(b=!1);return this.connectImpl(a, b)},emit:function(){var a=this;this._head==Ka.DISPATCHING_SENTINEL?this.defer(function(){a.emitImpl()}):this.emitImpl()},emitImpl:function(){for(var a=this.willEmit(),b=a;null!=b;)b._listener(),b.stayInList||b.dispose(),b=b._next;this.didEmit(a)},__class__:ja});var Df=function(a){this.next=null;this.fn=a};h["flambe.util._SignalBase.Task"]=Df;Df.__name__=["flambe","util","_SignalBase","Task"];Df.prototype={__class__:Df};var ca=function(){};h["flambe.util.Strings"]=ca;ca.__name__=["flambe","util","Strings"]; ca.getFileExtension=function(a){var b=a.lastIndexOf(".");return 0";var c=typeof a;if("function"==c&&(a.__name__||a.__ename__))c="object";switch(c){case "object":if(a instanceof Array){if(a.__enum__){if(2==a.length)return a[0];for(var c=a[0]+"(", b=b+"\t",d=2,e=a.length;d";case "string":return a;default:return""+a}};F.__interfLoop=function(a,b){if(null==a)return!1;if(a==b)return!0;var c=a.__interfaces__;if(null!=c)for(var d=0,e=c.length;d this.zpp_inner.ws2.id?this.zpp_inner.ws2.outer:this.zpp_inner.ws1.outer).toString()+"|"+(this.zpp_inner.ws1.id>this.zpp_inner.ws2.id?this.zpp_inner.ws1.outer:this.zpp_inner.ws2.outer).toString()+")"+(this.zpp_inner.type==K.COL?"["+["SD","DD"][this.zpp_inner.colarb.stat?0:1]+"]":"")+"<-"+(this.zpp_inner.immState==(f.id_ImmState_ACCEPT|f.id_ImmState_ALWAYS)?function(){null==f.PreFlag_ACCEPT&&(f.internal=!0,f.PreFlag_ACCEPT=new Pa,f.internal=!1);return f.PreFlag_ACCEPT}(this):this.zpp_inner.immState== f.id_ImmState_ACCEPT?function(){null==f.PreFlag_ACCEPT_ONCE&&(f.internal=!0,f.PreFlag_ACCEPT_ONCE=new Pa,f.internal=!1);return f.PreFlag_ACCEPT_ONCE}(this):this.zpp_inner.immState==(f.id_ImmState_IGNORE|f.id_ImmState_ALWAYS)?function(){null==f.PreFlag_IGNORE&&(f.internal=!0,f.PreFlag_IGNORE=new Pa,f.internal=!1);return f.PreFlag_IGNORE}(this):function(){null==f.PreFlag_IGNORE_ONCE&&(f.internal=!0,f.PreFlag_IGNORE_ONCE=new Pa,f.internal=!1);return f.PreFlag_IGNORE_ONCE}(this)).toString()},__class__:Nc}; var ac=function(){this.zpp_next=null;this.zpp_critical=!1;this.zpp_i=0;this.zpp_inner=null};h["nape.dynamics.ArbiterIterator"]=ac;ac.__name__=["nape","dynamics","ArbiterIterator"];ac.get=function(a){var b;null==ac.zpp_pool?(Oc.internal=!0,b=new ac,Oc.internal=!1):(b=ac.zpp_pool,ac.zpp_pool=b.zpp_next);b.zpp_i=0;b.zpp_inner=a;b.zpp_critical=!1;return b};ac.prototype={hasNext:function(){this.zpp_inner.zpp_inner.valmod();var a=this.zpp_inner.zpp_gl();this.zpp_critical=!0;if(this.zpp_id.precedence||c.precedence==d.precedence&&c.id>d.id?a=a.next:b=b.next}},empty_intersection:function(){return null==this.listeners.head},single_intersection:function(a){var b=this.listeners.head;return null!=b&&b.elt==a&& null==b.next},forall:function(a,b){for(var c=this.listeners.head;null!=c;){var d=c.elt;d.event==a&&b(d);c=c.next}},__class__:Qa};var qd=function(){this.length=0;this.modified=this.pushmod=!1;this.head=null};h["zpp_nape.util.ZNPList_ZPP_InteractionListener"]=qd;qd.__name__=["zpp_nape","util","ZNPList_ZPP_InteractionListener"];qd.prototype={add:function(a){return this.inlined_add(a)},inlined_add:function(a){var b;null==oa.zpp_pool?b=new oa:(b=oa.zpp_pool,oa.zpp_pool=b.next,b.next=null);null;b.elt=a; b.next=this.head;this.head=b;this.modified=!0;this.length++;return a},inlined_insert:function(a,b){var c;null==oa.zpp_pool?c=new oa:(c=oa.zpp_pool,oa.zpp_pool=c.next,c.next=null);null;c.elt=b;null==a?(c.next=this.head,this.head=c):(c.next=a.next,a.next=c);this.pushmod=this.modified=!0;this.length++;return c},inlined_pop:function(){var a=this.head;this.head=a.next;a.elt=null;a.next=oa.zpp_pool;oa.zpp_pool=a;null==this.head&&(this.pushmod=!0);this.modified=!0;this.length--},remove:function(a){this.inlined_try_remove(a)}, inlined_try_remove:function(a){for(var b=null,c=this.head,d=!1;null!=c;){if(c.elt==a){this.inlined_erase(b);d=!0;break}b=c;c=c.next}return d},inlined_erase:function(a){var b,c;null==a?(b=this.head,this.head=c=b.next,null==this.head&&(this.pushmod=!0)):(b=a.next,c=b.next,a.next=c,null==c&&(this.pushmod=!0));a=b;a.elt=null;a.next=oa.zpp_pool;oa.zpp_pool=a;this.modified=!0;this.length--;this.pushmod=!0;return c},clear:function(){for(;null!=this.head;)this.inlined_pop();this.pushmod=!0},inlined_clear:function(){for(;null!= this.head;)this.inlined_pop();this.pushmod=!0},__class__:qd};var kf=function(){this.length=0;this.modified=this.pushmod=!1;this.head=null};h["zpp_nape.util.ZNPList_ZPP_BodyListener"]=kf;kf.__name__=["zpp_nape","util","ZNPList_ZPP_BodyListener"];kf.prototype={inlined_insert:function(a,b){var c;null==hc.zpp_pool?c=new hc:(c=hc.zpp_pool,hc.zpp_pool=c.next,c.next=null);null;c.elt=b;null==a?(c.next=this.head,this.head=c):(c.next=a.next,a.next=c);this.pushmod=this.modified=!0;this.length++;return c},inlined_pop:function(){var a= this.head;this.head=a.next;a.elt=null;a.next=hc.zpp_pool;hc.zpp_pool=a;null==this.head&&(this.pushmod=!0);this.modified=!0;this.length--},remove:function(a){this.inlined_try_remove(a)},inlined_try_remove:function(a){for(var b=null,c=this.head,d=!1;null!=c;){if(c.elt==a){this.inlined_erase(b);d=!0;break}b=c;c=c.next}return d},inlined_erase:function(a){var b,c;null==a?(b=this.head,this.head=c=b.next,null==this.head&&(this.pushmod=!0)):(b=a.next,c=b.next,a.next=c,null==c&&(this.pushmod=!0));a=b;a.elt= null;a.next=hc.zpp_pool;hc.zpp_pool=a;this.modified=!0;this.length--;this.pushmod=!0;return c},clear:function(){for(;null!=this.head;)this.inlined_pop();this.pushmod=!0},__class__:kf};var lf=function(){this.length=0;this.modified=this.pushmod=!1;this.head=null};h["zpp_nape.util.ZNPList_ZPP_ConstraintListener"]=lf;lf.__name__=["zpp_nape","util","ZNPList_ZPP_ConstraintListener"];lf.prototype={inlined_insert:function(a,b){var c;null==ic.zpp_pool?c=new ic:(c=ic.zpp_pool,ic.zpp_pool=c.next,c.next=null); null;c.elt=b;null==a?(c.next=this.head,this.head=c):(c.next=a.next,a.next=c);this.pushmod=this.modified=!0;this.length++;return c},inlined_pop:function(){var a=this.head;this.head=a.next;a.elt=null;a.next=ic.zpp_pool;ic.zpp_pool=a;null==this.head&&(this.pushmod=!0);this.modified=!0;this.length--},remove:function(a){this.inlined_try_remove(a)},inlined_try_remove:function(a){for(var b=null,c=this.head,d=!1;null!=c;){if(c.elt==a){this.inlined_erase(b);d=!0;break}b=c;c=c.next}return d},inlined_erase:function(a){var b, c;null==a?(b=this.head,this.head=c=b.next,null==this.head&&(this.pushmod=!0)):(b=a.next,c=b.next,a.next=c,null==c&&(this.pushmod=!0));a=b;a.elt=null;a.next=ic.zpp_pool;ic.zpp_pool=a;this.modified=!0;this.length--;this.pushmod=!0;return c},clear:function(){for(;null!=this.head;)this.inlined_pop();this.pushmod=!0},__class__:lf};var rd=function(){this.length=0;this.modified=this.pushmod=!1;this.head=null};h["zpp_nape.util.ZNPList_ZPP_Constraint"]=rd;rd.__name__=["zpp_nape","util","ZNPList_ZPP_Constraint"]; rd.prototype={add:function(a){return this.inlined_add(a)},inlined_add:function(a){var b;null==jc.zpp_pool?b=new jc:(b=jc.zpp_pool,jc.zpp_pool=b.next,b.next=null);null;b.elt=a;b.next=this.head;this.head=b;this.modified=!0;this.length++;return a},pop:function(){this.inlined_pop()},inlined_pop:function(){var a=this.head;this.head=a.next;a.elt=null;a.next=jc.zpp_pool;jc.zpp_pool=a;null==this.head&&(this.pushmod=!0);this.modified=!0;this.length--},inlined_pop_unsafe:function(){var a=this.head.elt;this.pop(); return a},remove:function(a){this.inlined_try_remove(a)},inlined_try_remove:function(a){for(var b=null,c=this.head,d=!1;null!=c;){if(c.elt==a){this.inlined_erase(b);d=!0;break}b=c;c=c.next}return d},erase:function(a){return this.inlined_erase(a)},inlined_erase:function(a){var b,c;null==a?(b=this.head,this.head=c=b.next,null==this.head&&(this.pushmod=!0)):(b=a.next,c=b.next,a.next=c,null==c&&(this.pushmod=!0));a=b;a.elt=null;a.next=jc.zpp_pool;jc.zpp_pool=a;this.modified=!0;this.length--;this.pushmod= !0;return c},iterator_at:function(a){for(var b=this.head;0d.precedence||a.precedence==d.precedence&&a.id>d.id)break;b=c;c=c.next}this.listeners.inlined_insert(b,a);this.invalidateint()},invalidateint:function(){for(var a=this.cbsets.head;null!=a;){var b=a.elt;b.zip_listeners=!0;b.invalidate_pairs();a=a.next}},addbody:function(a){for(var b=null,c=this.bodylisteners.head;null!=c;){var d=c.elt;if(a.precedence>d.precedence|| a.precedence==d.precedence&&a.id>d.id)break;b=c;c=c.next}this.bodylisteners.inlined_insert(b,a);this.invalidatebody()},invalidatebody:function(){for(var a=this.cbsets.head;null!=a;)a.elt.zip_bodylisteners=!0,a=a.next},addconstraint:function(a){for(var b=null,c=this.conlisteners.head;null!=c;){var d=c.elt;if(a.precedence>d.precedence||a.precedence==d.precedence&&a.id>d.id)break;b=c;c=c.next}this.conlisteners.inlined_insert(b,a);this.invalidateconstraint()},invalidateconstraint:function(){for(var a= this.cbsets.head;null!=a;)a.elt.zip_conlisteners=!0,a=a.next},__class__:qb};var f=function(){};h["zpp_nape.util.ZPP_Flags"]=f;f.__name__=["zpp_nape","util","ZPP_Flags"];var Pb=function(){this.body=this.constraint=this.interaction=this.space=null;this.id=this.type=this.event=this.precedence=0;this.outer=null;this.id=ba.Listener()};h["zpp_nape.callbacks.ZPP_Listener"]=Pb;Pb.__name__=["zpp_nape","callbacks","ZPP_Listener"];Pb.setlt=function(a,b){return a.precedence>b.precedence||a.precedence==b.precedence&& a.id>b.id};Pb.prototype={addedToSpace:function(){},removedFromSpace:function(){},__class__:Pb};var og=function(){this.outer_zn=this.options=this.handler=null};h["zpp_nape.callbacks.ZPP_BodyListener"]=og;og.__name__=["zpp_nape","callbacks","ZPP_BodyListener"];og.__super__=Pb;og.prototype=r(Pb.prototype,{addedToSpace:function(){this.options.handler=x(this,this.cbtype_change);for(var a=this.options.includes.head;null!=a;)a.elt.addbody(this),a=a.next},removedFromSpace:function(){for(var a=this.options.includes.head;null!= a;){var b=a.elt;b.bodylisteners.remove(this);b.invalidatebody();a=a.next}this.options.handler=null},cbtype_change:function(a,b,c){this.removedFromSpace();this.options.effect_change(a,b,c);this.addedToSpace()},__class__:og});var pg=function(){this.outer_zn=this.options=this.handler=null};h["zpp_nape.callbacks.ZPP_ConstraintListener"]=pg;pg.__name__=["zpp_nape","callbacks","ZPP_ConstraintListener"];pg.__super__=Pb;pg.prototype=r(Pb.prototype,{addedToSpace:function(){this.options.handler=x(this,this.cbtype_change); for(var a=this.options.includes.head;null!=a;)a.elt.addconstraint(this),a=a.next},removedFromSpace:function(){for(var a=this.options.includes.head;null!=a;){var b=a.elt;b.conlisteners.remove(this);b.invalidateconstraint();a=a.next}this.options.handler=null},cbtype_change:function(a,b,c){this.removedFromSpace();this.options.effect_change(a,b,c);this.addedToSpace()},__class__:pg});var xc=function(){this.length=0;this.modified=this.pushmod=!1;this.head=null};h["zpp_nape.util.ZNPList_ZPP_CbType"]=xc; xc.__name__=["zpp_nape","util","ZNPList_ZPP_CbType"];xc.prototype={add:function(a){return this.inlined_add(a)},inlined_add:function(a){var b;null==Ra.zpp_pool?b=new Ra:(b=Ra.zpp_pool,Ra.zpp_pool=b.next,b.next=null);null;b.elt=a;b.next=this.head;this.head=b;this.modified=!0;this.length++;return a},insert:function(a,b){return this.inlined_insert(a,b)},inlined_insert:function(a,b){var c;null==Ra.zpp_pool?c=new Ra:(c=Ra.zpp_pool,Ra.zpp_pool=c.next,c.next=null);null;c.elt=b;null==a?(c.next=this.head,this.head= c):(c.next=a.next,a.next=c);this.pushmod=this.modified=!0;this.length++;return c},pop:function(){this.inlined_pop()},inlined_pop:function(){var a=this.head;this.head=a.next;a.elt=null;a.next=Ra.zpp_pool;Ra.zpp_pool=a;null==this.head&&(this.pushmod=!0);this.modified=!0;this.length--},pop_unsafe:function(){return this.inlined_pop_unsafe()},inlined_pop_unsafe:function(){var a=this.head.elt;this.pop();return a},remove:function(a){this.inlined_try_remove(a)},inlined_try_remove:function(a){for(var b=null, c=this.head,d=!1;null!=c;){if(c.elt==a){this.inlined_erase(b);d=!0;break}b=c;c=c.next}return d},inlined_erase:function(a){var b,c;null==a?(b=this.head,this.head=c=b.next,null==this.head&&(this.pushmod=!0)):(b=a.next,c=b.next,a.next=c,null==c&&(this.pushmod=!0));a=b;a.elt=null;a.next=Ra.zpp_pool;Ra.zpp_pool=a;this.modified=!0;this.length--;this.pushmod=!0;return c},clear:function(){for(;null!=this.head;)this.inlined_pop();this.pushmod=!0},has:function(a){return this.inlined_has(a)},inlined_has:function(a){var b; b=!1;for(var c=this.head;null!=c;){if(c.elt==a){b=!0;break}c=c.next}return b},iterator_at:function(a){for(var b=this.head;0l)i=h+l,g-=d*i,j-=e*i;else if(hthis.ws2.worldCOMx*k+this.ws2.worldCOMy*Ba?(d=h+l,g-=k*d,j-=Ba*d):(d=h+l,g+=k*d,j+=Ba*d)}}else this.ws1.fluidEnabled?(i=this.overlap* this.ws1.fluidProperties.density,g-=d*i,j-=e*i):this.ws2.fluidEnabled&&(d=this.overlap*this.ws2.fluidProperties.density,g+=i*d,j+=p*d);g*=b;j*=b;this.buoyx=g;this.buoyy=j;this.b1.type==f.id_BodyType_DYNAMIC&&(d=this.b1.imass,this.b1.velx-=g*d,this.b1.vely-=j*d,this.b1.angvel-=(j*this.r1x-g*this.r1y)*this.b1.iinertia);this.b2.type==f.id_BodyType_DYNAMIC&&(d=this.b2.imass,this.b2.velx+=g*d,this.b2.vely+=j*d,this.b2.angvel+=(j*this.r2x-g*this.r2y)*this.b2.iinertia);if((!this.ws1.fluidEnabled||0==this.ws1.fluidProperties.viscosity)&& (!this.ws2.fluidEnabled||0==this.ws2.fluidProperties.viscosity))this.nodrag=!0,this.adamp=this.dampy=this.dampx=0;else{this.nodrag=!1;g=0;this.ws1.fluidEnabled&&(this.ws2.validate_angDrag(),g+=this.ws1.fluidProperties.viscosity*this.ws2.angDrag*this.overlap/this.ws2.area);this.ws2.fluidEnabled&&(this.ws1.validate_angDrag(),g+=this.ws2.fluidProperties.viscosity*this.ws1.angDrag*this.overlap/this.ws1.area);0!=g?(j=this.b1.sinertia+this.b2.sinertia,this.wMass=0!=j?1/j:0,g=2*Math.PI*4.0E-4*g,this.agamma= 1/(b*g*(2+g*b)),g=1/(1+this.agamma),this.agamma*=g,this.wMass*=g):this.agamma=this.wMass=0;g=this.b2.velx+this.b2.kinvelx-this.r2y*(this.b2.angvel+this.b2.kinangvel)-(this.b1.velx+this.b1.kinvelx-this.r1y*(this.b2.angvel+this.b2.kinangvel));j=this.b2.vely+this.b2.kinvely+this.r2x*(this.b2.angvel+this.b2.kinangvel)-(this.b1.vely+this.b1.kinvely+this.r1x*(this.b1.angvel+this.b1.kinangvel));g*g+j*j=Math.POSITIVE_INFINITY|| this.s2.material.elasticity>=Math.POSITIVE_INFINITY?1:(this.s1.material.elasticity+this.s2.material.elasticity)/2,0>this.restitution&&(this.restitution=0),1-n.elasticThreshold&& (d.bounce=0);l=o*this.nx-j*this.ny;j=n.staticFrictionThreshold;d.friction=l*l>j*j?this.dyn_fric:this.stat_fric;d.jnAcc*=b;d.jtAcc*=b}e!=h.active&&(this.contacts.modified=!0);d=g;e=i;i=i.next;g=g.next}}this.hc2?(this.hpc2=!0,this.oc1.posOnly?(i=this.c1,this.c1=this.c2,this.c2=i,i=this.oc1,this.oc1=this.oc2,this.oc2=i,this.hc2=!1):this.oc2.posOnly&&(this.hc2=!1),this.oc1.posOnly&&(a=!0)):this.hpc2=!1;this.jrAcc*=b;a||(this.rn1a=this.ny*this.c1.r1x-this.nx*this.c1.r1y,this.rt1a=this.c1.r1x*this.nx+this.c1.r1y* this.ny,this.rn1b=this.ny*this.c1.r2x-this.nx*this.c1.r2y,this.rt1b=this.c1.r2x*this.nx+this.c1.r2y*this.ny,this.k1x=this.b2.kinvelx-this.c1.r2y*this.b2.kinangvel-(this.b1.kinvelx-this.c1.r1y*this.b1.kinangvel),this.k1y=this.b2.kinvely+this.c1.r2x*this.b2.kinangvel-(this.b1.kinvely+this.c1.r1x*this.b1.kinangvel));this.hc2&&(this.rn2a=this.ny*this.c2.r1x-this.nx*this.c2.r1y,this.rt2a=this.c2.r1x*this.nx+this.c2.r1y*this.ny,this.rn2b=this.ny*this.c2.r2x-this.nx*this.c2.r2y,this.rt2b=this.c2.r2x*this.nx+ this.c2.r2y*this.ny,this.k2x=this.b2.kinvelx-this.c2.r2y*this.b2.kinangvel-(this.b1.kinvelx-this.c2.r1y*this.b1.kinangvel),this.k2y=this.b2.kinvely+this.c2.r2x*this.b2.kinangvel-(this.b1.kinvely+this.c2.r1x*this.b1.kinangvel),this.kMassa=c+this.b1.sinertia*this.rn1a*this.rn1a+this.b2.sinertia*this.rn1b*this.rn1b,this.kMassb=c+this.b1.sinertia*this.rn1a*this.rn2a+this.b2.sinertia*this.rn1b*this.rn2b,this.kMassc=c+this.b1.sinertia*this.rn2a*this.rn2a+this.b2.sinertia*this.rn2b*this.rn2b,this.kMassa* this.kMassa+2*this.kMassb*this.kMassb+this.kMassc*this.kMasscd?e=d:e<-d&&(e=-d);c=e-a;this.c1.jtAcc=e;a=-this.ny*c;b=this.nx*c;this.b2.velx+=a*this.b2.imass;this.b2.vely+=b*this.b2.imass;this.b1.velx-=a*this.b1.imass;this.b1.vely-=b*this.b1.imass;this.b2.angvel+=this.rt1b*c*this.b2.iinertia;this.b1.angvel-=this.rt1a*c*this.b1.iinertia;this.hc2?(e=this.k2x+this.b2.velx-this.c2.r2y*this.b2.angvel-(this.b1.velx-this.c2.r1y*this.b1.angvel),b=this.k2y+this.b2.vely+this.c2.r2x*this.b2.angvel-(this.b1.vely+this.c2.r1x*this.b1.angvel),c=(b*this.nx-e*this.ny+ this.surfacex)*this.c2.tMass,d=this.c2.friction*this.c2.jnAcc,a=this.c2.jtAcc,e=a-c,e>d?e=d:e<-d&&(e=-d),c=e-a,this.c2.jtAcc=e,a=-this.ny*c,b=this.nx*c,this.b2.velx+=a*this.b2.imass,this.b2.vely+=b*this.b2.imass,this.b1.velx-=a*this.b1.imass,this.b1.vely-=b*this.b1.imass,this.b2.angvel+=this.rt2b*c*this.b2.iinertia,this.b1.angvel-=this.rt2a*c*this.b1.iinertia,d=this.k1x+this.b2.velx-this.c1.r2y*this.b2.angvel-(this.b1.velx-this.c1.r1y*this.b1.angvel),f=this.k1y+this.b2.vely+this.c1.r2x*this.b2.angvel- (this.b1.vely+this.c1.r1x*this.b1.angvel),e=this.k2x+this.b2.velx-this.c2.r2y*this.b2.angvel-(this.b1.velx-this.c2.r1y*this.b1.angvel),b=this.k2y+this.b2.vely+this.c2.r2x*this.b2.angvel-(this.b1.vely+this.c2.r1x*this.b1.angvel),c=this.c1.jnAcc,a=this.c2.jnAcc,d=d*this.nx+f*this.ny+this.surfacey+this.c1.bounce-(this.Ka*c+this.Kb*a),e=e*this.nx+b*this.ny+this.surfacey+this.c2.bounce-(this.Kb*c+this.Kc*a),b=-(this.kMassa*d+this.kMassb*e),f=-(this.kMassb*d+this.kMassc*e),0<=b&&0<=f?(d=b-c,e=f-a,this.c1.jnAcc= b,this.c2.jnAcc=f):(b=-this.c1.nMass*d,0<=b&&0<=this.Kb*b+e?(d=b-c,e=-a,this.c1.jnAcc=b,this.c2.jnAcc=0):(f=-this.c2.nMass*e,0<=f&&0<=this.Kb*f+d?(d=-c,e=f-a,this.c1.jnAcc=0,this.c2.jnAcc=f):0<=d&&0<=e?(d=-c,e=-a,this.c1.jnAcc=this.c2.jnAcc=0):e=d=0)),c=d+e,a=this.nx*c,b=this.ny*c,this.b2.velx+=a*this.b2.imass,this.b2.vely+=b*this.b2.imass,this.b1.velx-=a*this.b1.imass,this.b1.vely-=b*this.b1.imass,this.b2.angvel+=(this.rn1b*d+this.rn2b*e)*this.b2.iinertia,this.b1.angvel-=(this.rn1a*d+this.rn2a*e)* this.b1.iinertia):(0!=this.radius&&(c=(this.b2.angvel-this.b1.angvel)*this.rMass,d=this.rfric*this.c1.jnAcc,a=this.jrAcc,this.jrAcc-=c,this.jrAcc>d?this.jrAcc=d:this.jrAcc<-d&&(this.jrAcc=-d),c=this.jrAcc-a,this.b2.angvel+=c*this.b2.iinertia,this.b1.angvel-=c*this.b1.iinertia),d=this.k1x+this.b2.velx-this.c1.r2y*this.b2.angvel-(this.b1.velx-this.c1.r1y*this.b1.angvel),f=this.k1y+this.b2.vely+this.c1.r2x*this.b2.angvel-(this.b1.vely+this.c1.r1x*this.b1.angvel),c=(this.c1.bounce+(this.nx*d+this.ny* f)+this.surfacey)*this.c1.nMass,a=this.c1.jnAcc,e=a-c,0>e&&(e=0),c=e-a,this.c1.jnAcc=e,a=this.nx*c,b=this.ny*c,this.b2.velx+=a*this.b2.imass,this.b2.vely+=b*this.b2.imass,this.b1.velx-=a*this.b1.imass,this.b1.vely-=b*this.b1.imass,this.b2.angvel+=this.rn1b*c*this.b2.iinertia,this.b1.angvel-=this.rn1a*c*this.b1.iinertia)},applyImpulsePos:function(){if(2==this.ptype){var a=this.c1,b=0,c=0,b=this.b2.axisy*a.lr2x-this.b2.axisx*a.lr2y,c=a.lr2x*this.b2.axisx+a.lr2y*this.b2.axisy,b=b+1*this.b2.posx,c=c+ 1*this.b2.posy,d=0,e=0,d=this.b1.axisy*a.lr1x-this.b1.axisx*a.lr1y,e=a.lr1x*this.b1.axisx+a.lr1y*this.b1.axisy,d=d+1*this.b1.posx,e=e+1*this.b1.posy,f=a=0,a=b-d,f=c-e,g=Math.sqrt(a*a+f*f),h=this.radius-n.collisionSlop,j=g-h;0>a*this.nx+f*this.ny&&(a=-a,f=-f,j-=this.radius);0>j&&(gg||0>c){this.rev&&(a=-a,f=-f);var l=0,k=0,l=j-this.b1.posx,k=o-this.b1.posy,d=h=0,h=j-this.b2.posx,d=o-this.b2.posy,Ba=0,m=0,o=j=0;if(this.hpc2){Ba= b-this.b1.posx;m=e-this.b1.posy;j=b-this.b2.posx;o=e-this.b2.posy;b=f*l-a*k;h=f*h-a*d;e=f*Ba-a*m;d=f*j-a*o;j=this.b1.smass+this.b2.smass;this.kMassa=j+this.b1.sinertia*b*b+this.b2.sinertia*h*h;this.kMassb=j+this.b1.sinertia*b*e+this.b2.sinertia*h*d;this.kMassc=j+this.b1.sinertia*e*e+this.b2.sinertia*d*d;l=o=j=0;j=this.kMassa;o=this.kMassb;l=this.kMassc;k=g*this.biasCoef;Ba=c*this.biasCoef;c=g=0;g=-k;c=-Ba;m=this.kMassa*this.kMassc-this.kMassb*this.kMassb;if(m!=m)g=c=0;else if(0==m)g=0!=this.kMassa? g/this.kMassa:0,c=0!=this.kMassc?c/this.kMassc:0;else var m=1/m,q=m*(this.kMassc*g-this.kMassb*c),c=m*(this.kMassa*c-this.kMassb*g),g=q;0<=g&&0<=c?(j=(g+c)*this.b1.imass,this.b1.posx-=a*j,this.b1.posy-=f*j,this.b1.delta_rot(-this.b1.iinertia*(b*g+e*c)),b=(g+c)*this.b2.imass,this.b2.posx+=a*b,this.b2.posy+=f*b,this.b2.delta_rot(this.b2.iinertia*(h*g+d*c))):(g=-k/j,c=0,0<=g&&0<=o*g+Ba?(j=(g+c)*this.b1.imass,this.b1.posx-=a*j,this.b1.posy-=f*j,this.b1.delta_rot(-this.b1.iinertia*(b*g+e*c)),b=(g+c)*this.b2.imass, this.b2.posx+=a*b,this.b2.posy+=f*b,this.b2.delta_rot(this.b2.iinertia*(h*g+d*c))):(g=0,c=-Ba/l,0<=c&&0<=o*c+k&&(j=(g+c)*this.b1.imass,this.b1.posx-=a*j,this.b1.posy-=f*j,this.b1.delta_rot(-this.b1.iinertia*(b*g+e*c)),b=(g+c)*this.b2.imass,this.b2.posx+=a*b,this.b2.posy+=f*b,this.b2.delta_rot(this.b2.iinertia*(h*g+d*c)))))}else b=f*l-a*k,h=f*h-a*d,c=this.b2.smass+h*h*this.b2.sinertia+this.b1.smass+b*b*this.b1.sinertia,0!=c&&(g=-this.biasCoef*g/c,d=c=0,c=a*g,d=f*g,a=this.b1.imass,this.b1.posx-=c*a, this.b1.posy-=d*a,this.b1.delta_rot(-b*this.b1.iinertia*g),a=this.b2.imass,this.b2.posx+=c*a,this.b2.posy+=d*a,this.b2.delta_rot(h*this.b2.iinertia*g))}}},__class__:sb});var Sa=function(){this.length=0;this._inuse=this.modified=this.pushmod=!1;this.next=null;this.dist=this.elasticity=0;this.fresh=!1;this.stamp=this.hash=0;this.active=this.posOnly=!1;this.arbiter=this.inner=null;this.px=this.py=0;this.outer=null;this.inner=new mf};h["zpp_nape.dynamics.ZPP_Contact"]=Sa;Sa.__name__=["zpp_nape","dynamics", "ZPP_Contact"];Sa.prototype={wrapper:function(){null==this.outer&&(Sa.internal=!0,this.outer=new dg,Sa.internal=!1,this.outer.zpp_inner=this);return this.outer},inlined_add:function(a){a._inuse=!0;a.next=this.next;this.next=a;this.modified=!0;this.length++;return a},pop:function(){this.inlined_pop()},inlined_pop:function(){var a=this.next;this.next=a.next;a._inuse=!1;null==this.next&&(this.pushmod=!0);this.modified=!0;this.length--},inlined_pop_unsafe:function(){var a=this.next;this.pop();return a}, inlined_erase:function(a){var b,c;null==a?(b=this.next,this.next=c=b.next,null==this.next&&(this.pushmod=!0)):(b=a.next,c=b.next,a.next=c,null==c&&(this.pushmod=!0));b._inuse=!1;this.modified=!0;this.length--;this.pushmod=!0;return c},__class__:Sa};var mf=function(){this.length=0;this._inuse=this.modified=this.pushmod=!1;this.next=null;this.r1x=this.r1y=this.r2x=this.r2y=this.nMass=this.tMass=this.bounce=this.friction=this.jnAcc=this.jtAcc=this.lr1x=this.lr1y=this.lr2x=this.lr2y=0};h["zpp_nape.dynamics.ZPP_IContact"]= mf;mf.__name__=["zpp_nape","dynamics","ZPP_IContact"];mf.prototype={add:function(a){return this.inlined_add(a)},inlined_add:function(a){a._inuse=!0;a.next=this.next;this.next=a;this.modified=!0;this.length++;return a},inlined_pop:function(){var a=this.next;this.next=a.next;a._inuse=!1;null==this.next&&(this.pushmod=!0);this.modified=!0;this.length--},inlined_erase:function(a){var b,c;null==a?(b=this.next,this.next=c=b.next,null==this.next&&(this.pushmod=!0)):(b=a.next,c=b.next,a.next=c,null==c&&(this.pushmod= !0));b._inuse=!1;this.modified=!0;this.length--;this.pushmod=!0;return c},__class__:mf};var Za=function(){this.collisionGroup=this.collisionMask=this.sensorGroup=this.sensorMask=this.fluidGroup=this.fluidMask=0;this.next=this.outer=this.shapes=null;this.shapes=new Xd;this.collisionGroup=this.sensorGroup=this.fluidGroup=1;this.collisionMask=this.sensorMask=this.fluidMask=-1};h["zpp_nape.dynamics.ZPP_InteractionFilter"]=Za;Za.__name__=["zpp_nape","dynamics","ZPP_InteractionFilter"];Za.prototype={wrapper:function(){if(null== this.outer){this.outer=new eg;var a=this.outer.zpp_inner;a.outer=null;a.next=Za.zpp_pool;Za.zpp_pool=a;this.outer.zpp_inner=this}return this.outer},shouldCollide:function(a){return 0!=(this.collisionMask&a.collisionGroup)&&0!=(a.collisionMask&this.collisionGroup)},shouldSense:function(a){return 0!=(this.sensorMask&a.sensorGroup)&&0!=(a.sensorMask&this.sensorGroup)},shouldFlow:function(a){return 0!=(this.fluidMask&a.fluidGroup)&&0!=(a.fluidMask&this.fluidGroup)},invalidate:function(){for(var a=this.shapes.head;null!= a;)a.elt.invalidate_filter(),a=a.next},__class__:Za};var fh=function(){this.depth=0;this.group=this.interactors=null;this.ignore=!1;this.outer=null};h["zpp_nape.dynamics.ZPP_InteractionGroup"]=fh;fh.__name__=["zpp_nape","dynamics","ZPP_InteractionGroup"];fh.prototype={__class__:fh};var Ea=function(){this.wrap_max=null;this.maxx=this.maxy=0;this.wrap_min=null;this.minx=this.miny=0;this.outer=this.next=null;this._immutable=!1;this._invalidate=this._validate=null};h["zpp_nape.geom.ZPP_AABB"]=Ea;Ea.__name__= ["zpp_nape","geom","ZPP_AABB"];Ea.get=function(a,b,c,d){var e;null==Ea.zpp_pool?e=new Ea:(e=Ea.zpp_pool,Ea.zpp_pool=e.next,e.next=null);null;e.minx=a;e.miny=b;e.maxx=c;e.maxy=d;return e};Ea.prototype={validate:function(){null!=this._validate&&this._validate()},perimeter:function(){return 2*(this.maxx-this.minx+(this.maxy-this.miny))},intersectY:function(a){return!(a.miny>this.maxy||this.miny>a.maxy)},intersect:function(a){return a.miny<=this.maxy&&this.miny<=a.maxy&&a.minx<=this.maxx&&this.minx<= a.maxx},combine:function(a){a.minxthis.maxx&&(this.maxx=a.maxx);a.minythis.maxy&&(this.maxy=a.maxy)},contains:function(a){return a.minx>=this.minx&&a.miny>=this.miny&&a.maxx<=this.maxx&&a.maxy<=this.maxy},setCombine:function(a,b){this.minx=a.minxb.maxx?a.maxx:b.maxx;this.maxy=a.maxy>b.maxy?a.maxy:b.maxy},setExpand:function(a,b){this.minx=a.minx-b; this.miny=a.miny-b;this.maxx=a.maxx+b;this.maxy=a.maxy+b},toString:function(){return"{ x: "+this.minx+" y: "+this.miny+" w: "+(this.maxx-this.minx)+" h: "+(this.maxy-this.miny)+" }"},__class__:Ea};var le=function(){this.length=0;this.modified=this.pushmod=!1;this.head=null};h["zpp_nape.util.ZNPList_ZPP_Vec2"]=le;le.__name__=["zpp_nape","util","ZNPList_ZPP_Vec2"];le.prototype={add:function(a){return this.inlined_add(a)},inlined_add:function(a){var b;null==La.zpp_pool?b=new La:(b=La.zpp_pool,La.zpp_pool= b.next,b.next=null);null;b.elt=a;b.next=this.head;this.head=b;this.modified=!0;this.length++;return a},insert:function(a,b){return this.inlined_insert(a,b)},inlined_insert:function(a,b){var c;null==La.zpp_pool?c=new La:(c=La.zpp_pool,La.zpp_pool=c.next,c.next=null);null;c.elt=b;null==a?(c.next=this.head,this.head=c):(c.next=a.next,a.next=c);this.pushmod=this.modified=!0;this.length++;return c},pop:function(){this.inlined_pop()},inlined_pop:function(){var a=this.head;this.head=a.next;a.elt=null;a.next= La.zpp_pool;La.zpp_pool=a;null==this.head&&(this.pushmod=!0);this.modified=!0;this.length--},pop_unsafe:function(){return this.inlined_pop_unsafe()},inlined_pop_unsafe:function(){var a=this.head.elt;this.pop();return a},erase:function(a){return this.inlined_erase(a)},inlined_erase:function(a){var b,c;null==a?(b=this.head,this.head=c=b.next,null==this.head&&(this.pushmod=!0)):(b=a.next,c=b.next,a.next=c,null==c&&(this.pushmod=!0));a=b;a.elt=null;a.next=La.zpp_pool;La.zpp_pool=a;this.modified=!0;this.length--; this.pushmod=!0;return c},clear:function(){for(;null!=this.head;)this.inlined_pop();this.pushmod=!0},iterator_at:function(a){for(var b=this.head;0i&&(i=k,h=l,g=1);o=o.next}if(e){for(o=b.polygon.edges.head;null!=o;){l=o.elt;k=1.0E100;for(Ba=a.polygon.gverts.next;null!=Ba;){m=Ba;m=l.gnormx*m.x+l.gnormy*m.y;mi&&(i=k,j=l,g=2);o=o.next}if(e){1==g?(a=b.polygon,b=h,j=1):(a=a.polygon,b=j,j=-1);h=null;e=1.0E100;for(i=a.edges.head;null!= i;)o=i.elt,l=b.gnormx*o.gnormx+b.gnormy*o.gnormy,ln.epsilon&&(e+=k*q,i+=Ba*q);m=(-b.tp0-m)*r;m<-n.epsilon&&(o+=k*m,l+=Ba*m);Ba=k=0;Ba=j;k=b.gnormx*Ba;Ba*=b.gnormy;c.lnormx=b.lnormx;c.lnormy=b.lnormy;c.lproj=b.lprojection;c.radius=0;c.rev=d!=(-1==j);c.ptype=c.rev?1:0;m=e*b.gnormx+i*b.gnormy-b.gprojection;j=o*b.gnormx+l*b.gnormy- b.gprojection;if(0j&&(j=k,g=l,e=i);i=i.next;o=o.next}if(h){h=e;e=null==e.next?b.polygon.gverts.next:e.next;i=a.circle.worldCOMy*g.gnormx-a.circle.worldCOMx*g.gnormy;if(i<=h.y*g.gnormx-h.x*g.gnormy)return j=a.circle.radius,i=e=0,e=h.x-a.circle.worldCOMx,i=h.y-a.circle.worldCOMy,o=e*e+i*i,o>j*j?j=null: o=e.y*g.gnormx-e.x*g.gnormy)return h=a.circle.radius,i=j=0,j=e.x-a.circle.worldCOMx,i=e.y-a.circle.worldCOMy,o=j*j+i*i,o>h*h?h=null:og*g?g=null:ei&&(i=o,c=j,d=g);g=g.next;h=h.next}if(e){e=d;d=null==d.next?b.polygon.gverts.next:d.next;i=a.circle.worldCOMy*c.gnormx-a.circle.worldCOMx*c.gnormy;if(i<=e.y*c.gnormx-e.x*c.gnormy)return c=a.circle.radius,i=d=0,d=e.x-a.circle.worldCOMx,i=e.y-a.circle.worldCOMy,d*d+i*i<=c*c;return i>=d.y*c.gnormx- d.x*c.gnormy?(c=a.circle.radius,i=e=0,e=d.x-a.circle.worldCOMx,i=d.y-a.circle.worldCOMy,e*e+i*i<=c*c):!0}}return!1}c=a.circle.radius+b.circle.radius;e=d=0;d=b.circle.worldCOMx-a.circle.worldCOMx;e=b.circle.worldCOMy-a.circle.worldCOMy;return d*d+e*e<=c*c};E.flowCollide=function(a,b,c){if(b.type==f.id_ShapeType_POLYGON){if(a.type==f.id_ShapeType_POLYGON){for(var d=[],e=[],i=!0,g=!0,h=a.polygon.edges.head;null!=h;){for(var j=h.elt,o=1.0E100,l=0,k=b.polygon.gverts.next;null!=k;){var m=k,q=j.gnormx*m.x+ j.gnormy*m.y;q=j.gprojection+n.epsilon&&(e[l]=!0,g=!1);l++;k=k.next}o-=j.gprojection;if(0=t.gprojection+n.epsilon&&(d[y]=!0,g=!1);y++;w=w.next}v-=t.gprojection;if(0< v){i=!1;break}r=r.next}if(g)return a.polygon.validate_worldCOM(),c.overlap=a.polygon.area,c.centroidx=a.polygon.worldCOMx,c.centroidy=a.polygon.worldCOMy,null,!0;if(i){for(;null!=E.flowpoly.head;){var H=E.flowpoly.pop_unsafe();if(!H._inuse){var B=H;null!=B.outer&&(B.outer.zpp_inner=null,B.outer=null);B._isimmutable=null;B._validate=null;B._invalidate=null;B.next=ea.zpp_pool;ea.zpp_pool=B}}for(var u=null,G=!1,A=a.polygon.gverts.next,D=0,z=b.polygon.gverts.next,J=0,N=0,M=b.polygon.edgeCnt;Nn.epsilon*n.epsilon?(i=1/i,e=(f*a-e*b)*i,e>n.epsilon&&e<1-n.epsilon?(a=(d*a-c*b)*i,a>n.epsilon&&a<1-n.epsilon?(na=e,a=!0):a=!1):a=!1):a=!1;return a})(this)&&nan.epsilon*n.epsilon?(i=1/i,e=(f*a-e*b)*i,e>n.epsilon&&e<1-n.epsilon?(a=(d*a-c*b)* i,a>n.epsilon&&a<1-n.epsilon?(ga=e,a=!0):a=!1):a=!1):a=!1;return a})(this)&&gan.epsilon*n.epsilon?(i=1/i, e=(f*a-e*b)*i,e>n.epsilon&&e<1-n.epsilon?(a=(d*a-c*b)*i,a>n.epsilon&&a<1-n.epsilon?($a=e,a=!0):a=!1):a=!1):a=!1;return a})(this)&&$an.epsilon*n.epsilon?(i=1/i,e=(f*a-e*b)*i,e>n.epsilon&&e<1-n.epsilon?(a=(d*a-c*b)*i,a>n.epsilon&&a<1-n.epsilon?(wa=e,a=!0):a=!1):a=!1):a=!1;return a})(this)&&wan.epsilon*n.epsilon?(i=1/i,e=(f*a-e*b)* i,e>n.epsilon&&e<1-n.epsilon?(a=(d*a-c*b)*i,a>n.epsilon&&a<1-n.epsilon?(Ka=e,a=!0):a=!1):a=!1):a=!1;return a}(this)&&Ka>=fa)if(Ea=z,ya=J,++Da==L){fa=Ka;W=Pa;break}else fa=Ka;ja=Ca;z=W;J++;J>=b.polygon.edgeCnt&&(J=0);W=W.next;null==W&&(W=b.polygon.gverts.next)}while(0);for(;W!=Pa;){var za=W,Fa=0;if(function(){var a=0,b=0,a=ja.x-ta.x,b=ja.y-ta.y,c=0,d=0,c=za.x-ja.x,d=za.y-ja.y,e=0,f=0,e=gh.x-ta.x,f=gh.y-ta.y,i=d*e-c*f;i*i>n.epsilon*n.epsilon?(i=1/i,e=(f*a-e*b)*i,e>n.epsilon&&e<1-n.epsilon?(a=(d*a-c* b)*i,a>n.epsilon&&a<1-n.epsilon?(Fa=e,a=!0):a=!1):a=!1):a=!1;return a}(this)&&Fa>=fa)if(Ea=z,ya=J,++Da==L){fa=Fa;W=Pa;break}else fa=Fa;ja=za;z=W;J++;J>=b.polygon.edgeCnt&&(J=0);W=W.next;null==W&&(W=b.polygon.gverts.next)}if(null==Ea)break;var Ga=Ea,Wa=Ea.next;null==Wa&&(Wa=b.polygon.gverts.next);var Ja=Wa,eb=0,Dh=0,jb=fa,eb=Ga.x+(Ja.x-Ga.x)*jb,Dh=Ga.y+(Ja.y-Ga.y)*jb;if(null!=u&&tb.vec_dsq(eb,Dh,u.x,u.y)n.epsilon*n.epsilon?(i=1/i,e=(f*a- e*b)*i,e>n.epsilon&&e<1-n.epsilon?(a=(d*a-c*b)*i,a>n.epsilon&&a<1-n.epsilon?(Qa=e,a=!0):a=!1):a=!1):a=!1;return a}(this)&&Qa>=Ta)if(Ua=A,Ia=D,++mb==L){Ta=Qa;Uc=Oa;break}else Ta=Qa;I=Xa;A=Uc;D++;D>=a.polygon.edgeCnt&&(D=0);Uc=Uc.next;null==Uc&&(Uc=a.polygon.gverts.next)}while(0);for(;Uc!=Oa;){var fb=Uc,nb=0;if(function(){var a=0,b=0,a=I.x-ba.x,b=I.y-ba.y,c=0,d=0,c=fb.x-I.x,d=fb.y-I.y,e=0,f=0,e=Sa.x-ba.x,f=Sa.y-ba.y,i=d*e-c*f;i*i>n.epsilon*n.epsilon?(i=1/i,e=(f*a-e*b)*i,e>n.epsilon&&e<1-n.epsilon?(a= (d*a-c*b)*i,a>n.epsilon&&a<1-n.epsilon?(nb=e,a=!0):a=!1):a=!1):a=!1;return a}(this)&&nb>=Ta)if(Ua=A,Ia=D,++mb==L){Ta=nb;Uc=Oa;break}else Ta=nb;I=fb;A=Uc;D++;D>=a.polygon.edgeCnt&&(D=0);Uc=Uc.next;null==Uc&&(Uc=a.polygon.gverts.next)}if(null==Ua)break;var ob=Ua,sb=Ua.next;null==sb&&(sb=a.polygon.gverts.next);var wb=sb,hb=0,pb=0,xb=Ta,hb=ob.x+(wb.x-ob.x)*xb,pb=ob.y+(wb.y-ob.y)*xb;if(null!=u&&tb.vec_dsq(hb,pb,u.x,u.y)cb.gprojection+a.circle.radius){Pb=!1;break}else Na+a.circle.radius>cb.gprojection+n.epsilon&&(Kb=!1,rb[Ub]=!0);Na-=cb.gprojection+a.circle.radius;Na>Lb&&(Lb=Na,Va=cb,db=Fb);Fb=Fb.next;Ub++;lb=lb.next}if(Pb){if(Kb)return c.overlap=a.circle.area,c.centroidx=a.circle.worldCOMx,c.centroidy=a.circle.worldCOMy,null,!0;var yb=db,ib;ib=null==db.next?b.polygon.gverts.next:db.next;var Xb=a.circle.worldCOMy*Va.gnormx-a.circle.worldCOMx*Va.gnormy;if(Xb<=yb.y*Va.gnormx-yb.x*Va.gnormy?function(){var b=a.circle.radius, c=0,d=0,c=yb.x-a.circle.worldCOMx,d=yb.y-a.circle.worldCOMy;return c*c+d*d<=b*b}(this):Xb>=ib.y*Va.gnormx-ib.x*Va.gnormy?function(){var b=a.circle.radius,c=0,d=0,c=ib.x-a.circle.worldCOMx,d=ib.y-a.circle.worldCOMy;return c*c+d*d<=b*b}(this):1){for(var Gb=[],Sb=0,mc=!0,yc=null,Ha=0,ub=b.polygon.gverts.next;null!=ub;){var nc=ub,Ec=tb.vec_dsq(nc.x,nc.y,a.circle.worldCOMx,a.circle.worldCOMy);(Gb[Sb]=Ec<=a.circle.radius*a.circle.radius)?(Ha=Sb,yc=ub):mc=!1;Sb++;ub=ub.next}if(mc)return b.polygon.validate_worldCOM(), c.overlap=b.polygon.area,c.centroidx=b.polygon.worldCOMx,c.centroidy=b.polygon.worldCOMy,null,!0;for(;null!=E.flowpoly.head;){var sc=E.flowpoly.pop_unsafe();if(!sc._inuse){var ha=sc;null!=ha.outer&&(ha.outer.zpp_inner=null,ha.outer=null);ha._isimmutable=null;ha._validate=null;ha._invalidate=null;ha.next=ea.zpp_pool;ea.zpp_pool=ha}}E.flowsegs.clear();var Bb=null,ra=1;null==yc?(yc=b.polygon.gverts.next,ra=2):E.flowpoly.add(Bb=yc);for(;0!=ra;)if(1==ra)if(yc=yc.next,null==yc&&(yc=b.polygon.gverts.next), Ha++,Ha>=b.polygon.edgeCnt&&(Ha=0),Gb[Ha]){if(tb.vec_dsq(Bb.x,Bb.y,yc.x,yc.y)vb?10:gc=-Tb/(2*zb),xc=!1):(vb=Math.sqrt(vb), zb=1/(2*zb),fc=(-Tb-vb)*zb,gc=(-Tb+vb)*zb,xc=!0);if(fc<1-n.epsilon&&gc>n.epsilon){var zc=0,Ac=0,ad=fc,zc=ia.x+(Ma.x-ia.x)*ad,Ac=ia.y+(Ma.y-ia.y)*ad;if(null!=Bb&&tb.vec_dsq(Bb.x,Bb.y,zc,Ac)ec?10:Yc=-Nc/(2*tc),ld=!1):(ec=Math.sqrt(ec),tc=1/(2*tc),Xc=(-Nc-ec)*tc,Yc=(-Nc+ec)*tc,ld=!0);if(Xc<1-n.epsilon&&Yc>n.epsilon){var ud= 0,xd=0,Hd=Xc,ud=ia.x+(gb.x-ia.x)*Hd,xd=ia.y+(gb.y-ia.y)*Hd;if(null!=Bb&&tb.vec_dsq(Bb.x,Bb.y,ud,xd)zd.gprojection){Nd=!1;break}nd=nd.next}return Nd?(c.overlap=a.circle.area,c.centroidx=a.circle.worldCOMx,c.centroidy=a.circle.worldCOMy,null,!0):!1}var pc=0,rc=0,Ic=0;if(null!=E.flowpoly.head.next.next){for(var Gd=0,ne=0,oe=0,Gd=oe=ne=0,Wc=E.flowpoly.head,cd=Wc.elt,Wc=Wc.next,Db=Wc.elt,Wc=Wc.next;null!=Wc;)var Jc=Wc.elt,Gd=Gd+Db.x*(Jc.y-cd.y),Od=Jc.y*Db.x- Jc.x*Db.y,ne=ne+(Db.x+Jc.x)*Od,oe=oe+(Db.y+Jc.y)*Od,cd=Db,Db=Jc,Wc=Wc.next;var Wc=E.flowpoly.head,Kc=Wc.elt,Gd=Gd+Db.x*(Kc.y-cd.y),Qd=Kc.y*Db.x-Kc.x*Db.y,ne=ne+(Db.x+Kc.x)*Qd,oe=oe+(Db.y+Kc.y)*Qd,cd=Db,Db=Kc,Wc=Wc.next,ed=Wc.elt,Gd=Gd+Db.x*(ed.y-cd.y),Ud=ed.y*Db.x-ed.x*Db.y,ne=ne+(Db.x+ed.x)*Ud,oe=oe+(Db.y+ed.y)*Ud,Gd=0.5*Gd,Vd=1/(6*Gd),ne=ne*Vd,oe=oe*Vd,Wd=-Gd,pc=pc+ne*Wd,rc=rc+oe*Wd,Ic=Ic-Gd}else E.flowsegs.add(E.flowpoly.head.elt),E.flowsegs.add(E.flowpoly.head.next.elt);for(;null!=E.flowsegs.head;)var qd= E.flowsegs.pop_unsafe(),sd=E.flowsegs.pop_unsafe(),Xd=0,Zd=0,Xd=sd.x-qd.x,Zd=sd.y-qd.y,ue=0,ve=0,ue=Xd,ve=Zd,$d=1/Math.sqrt(ue*ue+ve*ve),ue=ue*$d,ve=ve*$d,te=ue,ue=-ve,ve=te,pe=0,qe=0,pe=qd.x+sd.x,qe=qd.y+sd.y,pe=0.5*pe,qe=0.5*qe,pe=pe-1*a.circle.worldCOMx,qe=qe-1*a.circle.worldCOMy,Id=0,ae=0,be=ue*pe+ve*qe,yd=be/a.circle.radius,md=Math.sqrt(1-yd*yd),ce=Math.acos(yd),Id=a.circle.radius*(a.circle.radius*ce-be*md),ae=0.6666666666666666*a.circle.radius*md*md*md/(ce-yd*md),pe=a.circle.worldCOMx,qe=a.circle.worldCOMy, de=ae,pe=pe+ue*de,qe=qe+ve*de,ee=Id,pc=pc+pe*ee,rc=rc+qe*ee,Ic=Ic+Id;var fe=1/Ic,pc=pc*fe,rc=rc*fe;c.overlap=Ic;c.centroidx=pc;c.centroidy=rc;null;return!0}}return!1}var Eb=a.circle,lc=b.circle,Ad=0,Bd=0,Ad=lc.worldCOMx-Eb.worldCOMx,Bd=lc.worldCOMy-Eb.worldCOMy,ge=Eb.radius+lc.radius,Pd=Ad*Ad+Bd*Bd;if(Pd>ge*ge)return!1;if(Pdk&&(k=-k);var m=j.angvel;0>m&&(m=-m);var q=f.sweepCoef*k+g.sweepCoef*m;if(!e&&!a.kinematic&&o*o+l*l=w||t<0.5*n.distanceThresholdCCD)break}u=(q-u)*b;if(0>=u){c=-1;break}u=t/u;1.0E-6>u&&(u=1.0E-6);c+=u;if(1<=c){c=1;h.sweepIntegrate(c*b);h.sweepValidate(f);j.sweepIntegrate(c*b);j.sweepValidate(g);b=Qb.distance(f,g,r,k,m,null)+d;o=o*m.x+l*m.y;if(b=h||b<0.5*n.distanceThresholdCCD)break}c=-1;break}if(40<=++v){t>d&&(a.failed=!0);break}}a.toi=c}};Qb.staticSweep=function(a,b,c,d){var e=a.s1,f=a.s2,g=e.body,h=0,j=0,h=-g.velx,j=-g.vely,o=g.sweep_angvel;0>o&&(o=-o);for(var l=e.sweepCoef*o,o=a.c1,k=a.c2,m=a.axis,q=0;;){g.sweepIntegrate(c*b);g.sweepValidate(e);var r=Qb.distance(e,f,o,k,m,null)+d,t=h*m.x+j* m.y;if(r=u||r<0.5*n.distanceThresholdCCD)break}t=(l-t)*b;if(0>=t){c=-1;break}t=r/t;1.0E-6>t&&(t=1.0E-6);c+=t;if(1<=c){c=1;g.sweepIntegrate(c*b);g.sweepValidate(e);b=Qb.distance(e,f,o,k,m,null)+d;h=h*m.x+j*m.y;if(b=g||b<0.5*n.distanceThresholdCCD))break;c=-1;break}if(40<= ++q){r>d&&(a.failed=!0);break}}a.toi=c};Qb.distance=function(a,b,c,d,e,i){null==i&&(i=1.0E100);if(a.type==f.id_ShapeType_CIRCLE&&b.type==f.id_ShapeType_CIRCLE){var g=a.circle,h=b.circle,j,o=0,l=0,o=h.worldCOMx-g.worldCOMx,l=h.worldCOMy-g.worldCOMy,k=Math.sqrt(o*o+l*l);j=k-(g.radius+h.radius);if(ji){y=z;break}0y&&(y=z,x=E):0>y&&z>y&&(y=z,x=E);C=C.next}if(y=B.y*x.gnormx-B.x*x.gnormy){var L=0,M=0,L=w.worldCOMx-B.x,M=w.worldCOMy-B.y,O=Math.sqrt(L*L+M*M),y=O-w.radius;if(yi){K=W;break}0K&&(K=W,Z=V,S=1):0>K&&W>K&&(K=W,Z=V,S=1);ea=ea.next}if(Ki){K=s;break}0K&&(K=s,Y=sa,S=2):0>K&&s>K&&(K=s,Y=sa,S=2);ja=ja.next}if(Kya?ya=0:1Ka?Ka=0:1Pa?Pa=0:1Ua?Ua=0:1n.epsilon&&(Na+=Xa*ab,Ia+=jb*ab);var mb=(-$a.tp0-hb)*pb;mb<-n.epsilon&&(Oa+=Xa*mb,Ja+=jb*mb);var db=Na*$a.gnormx+Ia*$a.gnormy-$a.gprojection,ib=Oa*$a.gnormx+Ja*$a.gnormy-$a.gprojection;if(dbb)a=!1;else if(tb.vec_dsq(this.posx,this.posy,this.pre_posx,this.pre_posy)>0.25*b*a*a)a=!1;else{var c=b=0,b=this.aabb.maxx-this.aabb.minx,c=this.aabb.maxy-this.aabb.miny,b=b*b+c*c,c=n.angularSleepThreshold, c=c*c;if(4*this.angvel*this.angvel*b>c)a=!1;else var d=this.rot-this.pre_rot,a=d*d*b>c*a*a?!1:!0}a||(this.component.waket=this.space.stamp);return this.component.waket+n.sleepDelaythis.area&&(this.reverse_vertices(),this.area=-this.area)))},cleanup_lvert:function(a){for(var b=null,c=null,d=this.lverts.next;null!=d&&!(d==a);){b=null==b?this.gverts.next:b.next,c=null==c?this.edges.head: c.next;d=d.next}a=null==b?this.gverts.next:b.next;this.gverts.erase(b);null!=a.outer&&(a.outer.zpp_inner=null,a.outer=null);a._isimmutable=null;a._validate=null;a._invalidate=null;a.next=ea.zpp_pool;ea.zpp_pool=a;2==this.edgeCnt?(c=this.edges.pop_unsafe(),c.polygon=null,c.next=va.zpp_pool,va.zpp_pool=c,c=this.edges.pop_unsafe(),c.polygon=null,c.next=va.zpp_pool,va.zpp_pool=c,this.edgeCnt=0):0!=this.edgeCnt&&(b=null==c?this.edges.head.elt:c.next.elt,this.edges.erase(c),b.polygon=null,b.next=va.zpp_pool, va.zpp_pool=b,this.edgeCnt--)},splice_collinear:function(){this.zip_sanitation&&(this.zip_sanitation=!1,this.splice_collinear_real())},splice_collinear_real:function(){if(!(null==this.lverts.next||null==this.lverts.next.next)&&null!=this.lverts.next.next.next){for(var a=null,b=this.lverts.next;null!=b;){var c=b,d=null==b.next?this.lverts.next:b.next;tb.vec_dsq(c.x,c.y,d.x,d.y)=n.epsilon*n.epsilon||(this.cleanup_lvert(c),this.lverts.erase(null==b.next?null:b),a=!0);b=b.next}}while(a)}}},reverse_vertices:function(){this.lverts.reverse();this.gverts.reverse();this.edges.reverse();var a=this.edges.iterator_at(this.edgeCnt-1),b=this.edges.pop_unsafe();this.edges.insert(a,b);this.reverse_flag= !this.reverse_flag;null!=this.wrap_lverts&&(this.wrap_lverts.zpp_inner.reverse_flag=this.reverse_flag);null!=this.wrap_gverts&&(this.wrap_gverts.zpp_inner.reverse_flag=this.reverse_flag);null!=this.wrap_edges&&(this.wrap_edges.zpp_inner.reverse_flag=this.reverse_flag)},validate_laxi:function(){if(this.zip_laxi){this.zip_laxi=!1;this.validate_lverts();for(var a=this.edges.head,b=this.lverts.next,c=b,b=b.next;null!=b;){var d=b,e=a.elt,a=a.next;e.lp0=c;e.lp1=d;var f=0,g=0,f=c.x-d.x,g=c.y-d.y,h=Math.sqrt(f* f+g*g);e.length=h;h=1/h;f*=h;g*=h;h=f;f=-g;g=h;e.lprojection=f*c.x+g*c.y;e.lnormx=f;e.lnormy=g;null!=e.wrap_lnorm&&(e.wrap_lnorm.zpp_inner.x=f,e.wrap_lnorm.zpp_inner.y=g);c=d;b=b.next}e=this.lverts.next;a=a.elt;a.lp0=c;a.lp1=e;d=b=0;b=c.x-e.x;d=c.y-e.y;e=Math.sqrt(b*b+d*d);a.length=e;e=1/e;f=b*e;b=-(d*e);d=f;a.lprojection=b*c.x+d*c.y;a.lnormx=b;a.lnormy=d;null!=a.wrap_lnorm&&(a.wrap_lnorm.zpp_inner.x=b,a.wrap_lnorm.zpp_inner.y=d)}},validate_gverts:function(){if(this.zip_gverts&&null!=this.body){this.zip_gverts= !1;this.validate_lverts();this.body.validate_axis();for(var a=this.lverts.next,b=this.gverts.next;null!=b;){var c=b,d=a,a=a.next;c.x=this.body.posx+(this.body.axisy*d.x-this.body.axisx*d.y);c.y=this.body.posy+(d.x*this.body.axisx+d.y*this.body.axisy);b=b.next}}},validate_gaxi:function(){if(this.zip_gaxi&&null!=this.body){this.zip_gaxi=!1;this.validate_laxi();this.body.validate_axis();this.validate_gverts();for(var a=this.edges.head,b=this.gverts.next,c=b,b=b.next;null!=b;){var d=b,e=a.elt,a=a.next; e.gp0=c;e.gp1=d;e.gnormx=this.body.axisy*e.lnormx-this.body.axisx*e.lnormy;e.gnormy=e.lnormx*this.body.axisx+e.lnormy*this.body.axisy;e.gprojection=this.body.posx*e.gnormx+this.body.posy*e.gnormy+e.lprojection;null!=e.wrap_gnorm&&(e.wrap_gnorm.zpp_inner.x=e.gnormx,e.wrap_gnorm.zpp_inner.y=e.gnormy);e.tp0=e.gp0.y*e.gnormx-e.gp0.x*e.gnormy;e.tp1=e.gp1.y*e.gnormx-e.gp1.x*e.gnormy;c=d;b=b.next}b=this.gverts.next;a=a.elt;a.gp0=c;a.gp1=b;a.gnormx=this.body.axisy*a.lnormx-this.body.axisx*a.lnormy;a.gnormy= a.lnormx*this.body.axisx+a.lnormy*this.body.axisy;a.gprojection=this.body.posx*a.gnormx+this.body.posy*a.gnormy+a.lprojection;null!=a.wrap_gnorm&&(a.wrap_gnorm.zpp_inner.x=a.gnormx,a.wrap_gnorm.zpp_inner.y=a.gnormy);a.tp0=a.gp0.y*a.gnormx-a.gp0.x*a.gnormy;a.tp1=a.gp1.y*a.gnormx-a.gp1.x*a.gnormy}},__validate_aabb:function(){this.validate_gverts();var a=this.gverts.next;this.aabb.minx=a.x;this.aabb.miny=a.y;this.aabb.maxx=a.x;this.aabb.maxy=a.y;for(a=this.gverts.next.next;null!=a;){var b=a;b.xthis.aabb.maxx&&(this.aabb.maxx=b.x);b.ythis.aabb.maxy&&(this.aabb.maxy=b.y);a=a.next}},_force_validate_aabb:function(){var a=this.lverts.next,b=this.gverts.next,c=a,a=a.next;b.x=this.body.posx+(this.body.axisy*c.x-this.body.axisx*c.y);b.y=this.body.posy+(c.x*this.body.axisx+c.y*this.body.axisy);this.aabb.minx=b.x;this.aabb.miny=b.y;this.aabb.maxx=b.x;this.aabb.maxy=b.y;for(b=this.gverts.next.next;null!=b;){var c=b,d=a,a=a.next;c.x= this.body.posx+(this.body.axisy*d.x-this.body.axisx*d.y);c.y=this.body.posy+(d.x*this.body.axisx+d.y*this.body.axisy);c.xthis.aabb.maxx&&(this.aabb.maxx=c.x);c.ythis.aabb.maxy&&(this.aabb.maxy=c.y);b=b.next}},__validate_sweepRadius:function(){var a=0,b=0;this.validate_laxi();for(var c=this.lverts.next;null!=c;){var d=c,d=d.x*d.x+d.y*d.y;d>a&&(a=d);c=c.next}for(c=this.edges.head;null!=c;){d=c.elt;if(d.lprojectionb))break;c=c.next}0>b&&(b=0);this.sweepRadius=Math.sqrt(a);this.sweepCoef=this.sweepRadius-b},__validate_area_inertia:function(){if(null==this.lverts.next||null==this.lverts.next.next||null==this.lverts.next.next.next)this.inertia=this.area=0;else{for(var a=this.area=0,b=0,c=this.lverts.next,d=c,e=c=c.next,c=c.next;null!=c;){var f=c,g=e.y*d.x-e.x*d.y,a=a+g*(e.x*e.x+e.y*e.y+(e.x*d.x+e.y*d.y)+(d.x*d.x+d.y*d.y)),b=b+g;this.area+=e.x*(f.y-d.y);d=e;e=f;c=c.next}g=c=this.lverts.next; f=e.y*d.x-e.x*d.y;a+=f*(e.x*e.x+e.y*e.y+(e.x*d.x+e.y*d.y)+(d.x*d.x+d.y*d.y));this.area+=e.x*(g.y-d.y);d=e;e=g;c=c.next;g=e.y*d.x-e.x*d.y;a+=g*(e.x*e.x+e.y*e.y+(e.x*d.x+e.y*d.y)+(d.x*d.x+d.y*d.y));this.area+=e.x*(c.y-d.y);this.inertia=a/(6*(b+f+g));this.area*=0.5;0>this.area&&(this.area=-this.area,this.reverse_vertices())}},__validate_angDrag:function(){this.validate_area_inertia();this.validate_laxi();for(var a=0,b=this.edges.head,c=0,d=this.lverts.next,e=d,d=d.next;null!=d;){var f=d,g=b.elt,b=b.next, c=c+g.length,h=0,j=0,h=f.x-e.x,j=f.y-e.y,a=a+g.length*n.fluidAngularDragFriction*this.material.dynamicFriction*g.lprojection*g.lprojection,o=-(e.y*g.lnormx-e.x*g.lnormy)/(j*g.lnormx-h*g.lnormy);if(0o&&(o=0>o?0:o,k=l=0,l=e.x,k=e.y,e=o,l+=h*e,k+=j*e,e=g.lnormy*l-g.lnormx*k,h=g.lnormy*f.x-g.lnormx*f.y,a+=(h*h*h-e*e*e)/(3*(h-e))* n.fluidVacuumDrag*(1-o)*g.length*n.fluidAngularDrag);e=f;d=d.next}d=this.lverts.next;b=b.elt;c+=b.length;g=f=0;f=d.x-e.x;g=d.y-e.y;a+=b.length*n.fluidAngularDragFriction*this.material.dynamicFriction*b.lprojection*b.lprojection;h=-(e.y*b.lnormx-e.x*b.lnormy)/(g*b.lnormx-f*b.lnormy);0h&&(h=0>h?0:h,o=j=0,j=e.x,o=e.y,e=b.lnormy*(j+f*h)-b.lnormx* (o+g*h),d=b.lnormy*d.x-b.lnormx*d.y,a+=(d*d*d-e*e*e)/(3*(d-e))*n.fluidVacuumDrag*(1-h)*b.length*n.fluidAngularDrag);this.angDrag=a/(this.inertia*c)},__validate_localCOM:function(){if(null==this.lverts.next.next)this.localCOMx=this.lverts.next.x,this.localCOMy=this.lverts.next.y;else if(null==this.lverts.next.next.next)this.localCOMx=this.lverts.next.x,this.localCOMy=this.lverts.next.y,this.localCOMx+=1*this.lverts.next.next.x,this.localCOMy+=1*this.lverts.next.next.y,this.localCOMx*=0.5,this.localCOMy*= 0.5;else{for(var a=this.localCOMy=this.localCOMx=0,b=this.lverts.next,c=b,d=b=b.next,b=b.next;null!=b;){var e=b,a=a+d.x*(e.y-c.y),c=e.y*d.x-e.x*d.y;this.localCOMx+=(d.x+e.x)*c;this.localCOMy+=(d.y+e.y)*c;c=d;d=e;b=b.next}e=b=this.lverts.next;a+=d.x*(e.y-c.y);c=e.y*d.x-e.x*d.y;this.localCOMx+=(d.x+e.x)*c;this.localCOMy+=(d.y+e.y)*c;c=d;d=e;b=b.next;a+=d.x*(b.y-c.y);c=b.y*d.x-b.x*d.y;this.localCOMx+=(d.x+b.x)*c;this.localCOMy+=(d.y+b.y)*c;a=1/(3*a);this.localCOMx*=a;this.localCOMy*=a}},__translate:function(a, b){for(var c=this.lverts.next;null!=c;){var d=c;d.x+=1*a;d.y+=1*b;c=c.next}this.invalidate_lverts()},__class__:hf});var kd=function(){this.sweep=this.dynab=null;this.is_sweep=!1;this.space=null};h["zpp_nape.space.ZPP_Broadphase"]=kd;kd.__name__=["zpp_nape","space","ZPP_Broadphase"];kd.prototype={insert:function(a){this.is_sweep?this.sweep.__insert(a):this.dynab.__insert(a)},remove:function(a){this.is_sweep?this.sweep.__remove(a):this.dynab.__remove(a)},sync:function(a){this.is_sweep?!this.sweep.space.continuous&& a.zip_aabb&&null!=a.body&&(a.zip_aabb=!1,a.type==f.id_ShapeType_CIRCLE?a.circle.__validate_aabb():a.polygon.__validate_aabb()):this.dynab.__sync(a)},broadphase:function(){},__class__:kd};var Ta=function(){this.synced=this.first_sync=!1;this.snext=null;this.moved=!1;this.next=this.mnext=null;this.height=0;this.parent=this.child1=this.child2=null;this.dyn=!1;this.aabb=this.shape=null;this.height=-1};h["zpp_nape.space.ZPP_AABBNode"]=Ta;Ta.__name__=["zpp_nape","space","ZPP_AABBNode"];Ta.prototype={free:function(){this.height= -1;var a=this.aabb;null!=a.outer&&(a.outer.zpp_inner=null,a.outer=null);a.wrap_min=a.wrap_max=null;a._invalidate=null;a._validate=null;a.next=Ea.zpp_pool;Ea.zpp_pool=a;this.mnext=this.snext=this.next=this.child1=this.child2=this.parent=null},__class__:Ta};var Aa=function(){this.arb=this.next=null;this.id=this.di=0;this.first=this.sleeping=!1;this.n1=this.n2=null};h["zpp_nape.space.ZPP_AABBPair"]=Aa;Aa.__name__=["zpp_nape","space","ZPP_AABBPair"];Aa.prototype={__class__:Aa};var Fb=function(){this.root= null};h["zpp_nape.space.ZPP_AABBTree"]=Fb;Fb.__name__=["zpp_nape","space","ZPP_AABBTree"];Fb.prototype={inlined_insertLeaf:function(a){if(null==this.root)this.root=a,this.root.parent=null;else{for(var b=a.aabb,c=this.root;null!=c.child1;){var d=c.child1,e=c.child2,f=c.aabb.perimeter();Fb.tmpaabb.setCombine(c.aabb,b);var g=Fb.tmpaabb.perimeter(),h=2*g,f=2*(g-f);Fb.tmpaabb.setCombine(b,d.aabb);null==d.child1?g=Fb.tmpaabb.perimeter()+f:(g=d.aabb.perimeter(),g=Fb.tmpaabb.perimeter()-g+f);Fb.tmpaabb.setCombine(b, e.aabb);if(null==e.child1)f=Fb.tmpaabb.perimeter()+f;else var j=e.aabb.perimeter(),f=Fb.tmpaabb.perimeter()-j+f;if(he?d:e),c.aabb.setCombine(a.aabb,b.aabb),c=c.parent}},removeLeaf:function(a){this.inlined_removeLeaf(a)},inlined_removeLeaf:function(a){if(a==this.root)this.root=null;else{var b=a.parent,c=b.parent,a=b.child1==a?b.child2:b.child1;if(null!=c){c.child1==b?c.child1=a:c.child2=a;a.parent=c;b.free();b.next=Ta.zpp_pool;Ta.zpp_pool=b;for(b= c;null!=b;)b=this.balance(b),a=b.child1,c=b.child2,b.aabb.setCombine(a.aabb,c.aabb),a=a.height,c=c.height,b.height=1+(a>c?a:c),b=b.parent}else this.root=a,a.parent=null,b.free(),b.next=Ta.zpp_pool,Ta.zpp_pool=b}},balance:function(a){if(null==a.child1||2>a.height)return a;var b=a.child1,c=a.child2,d=c.height-b.height;if(1f.height?(c.child2= e,a.child2=f,f.parent=a,a.aabb.setCombine(b.aabb,f.aabb),c.aabb.setCombine(a.aabb,e.aabb),a.height=1+function(){var a=b.height,c=f.height;return a>c?a:c}(this),c.height=1+function(){var b=a.height,c=e.height;return b>c?b:c}(this)):(c.child2=f,a.child2=e,e.parent=a,a.aabb.setCombine(b.aabb,e.aabb),c.aabb.setCombine(a.aabb,f.aabb),a.height=1+function(){var a=b.height,c=e.height;return a>c?a:c}(this),c.height=1+function(){var b=a.height,c=f.height;return b>c?b:c}(this));return c}if(-1>d){var g=b.child1, h=b.child2;b.child1=a;b.parent=a.parent;a.parent=b;null!=b.parent?b.parent.child1==a?b.parent.child1=b:b.parent.child2=b:this.root=b;g.height>h.height?(b.child2=g,a.child1=h,h.parent=a,a.aabb.setCombine(c.aabb,h.aabb),b.aabb.setCombine(a.aabb,g.aabb),a.height=1+function(){var a=c.height,b=h.height;return a>b?a:b}(this),b.height=1+function(){var b=a.height,c=g.height;return b>c?b:c}(this)):(b.child2=h,a.child1=g,g.parent=a,a.aabb.setCombine(c.aabb,g.aabb),b.aabb.setCombine(a.aabb,h.aabb),a.height= 1+function(){var a=c.height,b=g.height;return a>b?a:b}(this),b.height=1+function(){var b=a.height,c=h.height;return b>c?b:c}(this));return b}return a},__class__:Fb};var pf=function(a){this.stree=this.dtree=this.pairs=this.syncs=this.moves=null;kd.call(this);this.space=a;this.is_sweep=!1;this.dynab=this;this.stree=new Fb;this.dtree=new Fb};h["zpp_nape.space.ZPP_DynAABBPhase"]=pf;pf.__name__=["zpp_nape","space","ZPP_DynAABBPhase"];pf.__super__=kd;pf.prototype=r(kd.prototype,{__insert:function(a){var b; null==Ta.zpp_pool?b=new Ta:(b=Ta.zpp_pool,Ta.zpp_pool=b.next,b.next=null);null==Ea.zpp_pool?b.aabb=new Ea:(b.aabb=Ea.zpp_pool,Ea.zpp_pool=b.aabb.next,b.aabb.next=null);null;b.moved=!1;b.synced=!1;b.first_sync=!1;b.shape=a;a.node=b;b.synced=!0;b.first_sync=!0;b.snext=this.syncs;this.syncs=b},__remove:function(a){var b=a.node;b.first_sync||(b.dyn?this.dtree.removeLeaf(b):this.stree.removeLeaf(b));a.node=null;if(b.synced){for(var c=null,d=this.syncs;null!=d&&!(d==b);){c=d;d=d.snext}null==c?this.syncs= d.snext:c.snext=d.snext;d.snext=null;b.synced=!1}if(b.moved){c=null;for(d=this.moves;null!=d&&!(d==b);){c=d;d=d.mnext}null==c?this.moves=d.mnext:c.mnext=d.mnext;d.mnext=null;b.moved=!1}for(var c=null,e=this.pairs;null!=e;)d=e.next,e.n1==b||e.n2==b?(null==c?this.pairs=d:c.next=d,null!=e.arb&&(e.arb.pair=null),e.arb=null,e.n1.shape.pairs.remove(e),e.n2.shape.pairs.remove(e),e.n1=e.n2=null,e.sleeping=!1,e.next=Aa.zpp_pool,Aa.zpp_pool=e):c=e,e=d;for(;null!=a.pairs.head;)c=a.pairs.pop_unsafe(),c.n1==b? c.n2.shape.pairs.remove(c):c.n1.shape.pairs.remove(c),null!=c.arb&&(c.arb.pair=null),c.arb=null,c.n1=c.n2=null,c.sleeping=!1,c.next=Aa.zpp_pool,Aa.zpp_pool=c;b.free();b.next=Ta.zpp_pool;Ta.zpp_pool=b},__sync:function(a){var b=a.node;if(!b.synced&&(!this.space.continuous&&a.zip_aabb&&null!=a.body&&(a.zip_aabb=!1,a.type==f.id_ShapeType_CIRCLE?a.circle.__validate_aabb():a.polygon.__validate_aabb()),b.dyn!=(a.body.type==f.id_BodyType_STATIC?!1:!a.body.component.sleeping)||!b.aabb.contains(a.aabb)))b.synced= !0,b.snext=this.syncs,this.syncs=b},broadphase:function(a,b){for(var c=this.syncs;null!=c;){var d=c.shape;c.first_sync?c.first_sync=!1:(c.dyn?this.dtree:this.stree).inlined_removeLeaf(c);var e=c.aabb;!a.continuous&&d.zip_aabb&&null!=d.body&&(d.zip_aabb=!1,d.type==f.id_ShapeType_CIRCLE?d.circle.__validate_aabb():d.polygon.__validate_aabb());e.setExpand(d.aabb,3);((d.body.type==f.id_BodyType_STATIC?c.dyn=!1:c.dyn=!d.body.component.sleeping)?this.dtree:this.stree).inlined_insertLeaf(c);c.synced=!1;c= c.snext}for(;null!=this.syncs;)if(c=this.syncs,this.syncs=c.snext,c.snext=null,!c.moved&&(c.moved=!1,d=c.shape,!d.body.component.sleeping)){var e=c.aabb,g=null;null!=this.dtree.root&&(this.dtree.root.next=g,g=this.dtree.root);for(;null!=g;){var h;h=g;g=h.next;h.next=null;if(h!=c)if(null==h.child1){var k=h.shape;if(k.body!=d.body&&!(k.body.type==f.id_BodyType_STATIC&&d.body.type==f.id_BodyType_STATIC)&&e.intersect(h.aabb)){var j,o;d.idc&&null!=this.toiEvents.head;){for(var d=null,c=2,e=!1,g=null,h=null,k=this.toiEvents.head;null!=k;){var j=k.elt,o=j.s1.body,l=j.s2.body;if(o.sweepFrozen&&l.sweepFrozen)if(0!=j.toi&&E.testCollide_safe(j.s1,j.s2))j.toi=0;else{k=this.toiEvents.erase(h);j.next=bb.zpp_pool;bb.zpp_pool=j;continue}if(j.frozen1!=o.sweepFrozen||j.frozen2!=l.sweepFrozen)if(j.kinematic){k= this.toiEvents.erase(h);j.next=bb.zpp_pool;bb.zpp_pool=j;continue}else if(j.frozen1=o.sweepFrozen,j.frozen2=l.sweepFrozen,j.frozen1&&(o=j.s1,j.s1=j.s2,j.s2=o,j.frozen1=!1,j.frozen2=!0),Qb.staticSweep(j,a,0,n.collisionSlopCCD),0>j.toi){k=this.toiEvents.erase(h);j.next=bb.zpp_pool;bb.zpp_pool=j;continue}if(0<=j.toi&&(j.toih.toi||h.failed?(c=h,c.next= bb.zpp_pool,bb.zpp_pool=c):(this.toiEvents.add(h),h.frozen1=h.s1.body.sweepFrozen,h.frozen2=h.s2.body.sweepFrozen,h.arbiter=null!=d?d.colarb:null)}return d},bodyCbWake:function(a){if(a.type==f.id_BodyType_DYNAMIC&&null!=a.cbSet)if(this.midstep)for(var b=a.cbSet.bodylisteners.head;null!=b;){var c=b.elt;c.event==f.id_CbEvent_WAKE&&(c=this.push_callback(c),c.event=f.id_CbEvent_WAKE,c.body=a);b=b.next}else a.component.woken=!0},bodyCbSleep:function(a){if(a.type==f.id_BodyType_DYNAMIC&&null!=a.cbSet)for(var b= a.cbSet.bodylisteners.head;null!=b;){var c=b.elt;c.event==f.id_CbEvent_SLEEP&&(c=this.push_callback(c),c.event=f.id_CbEvent_SLEEP,c.body=a);b=b.next}},constraintCbWake:function(a){if(null!=a.cbSet)if(this.midstep)for(var b=a.cbSet.conlisteners.head;null!=b;){var c=b.elt;c.event==f.id_CbEvent_WAKE&&(c=this.push_callback(c),c.event=f.id_CbEvent_WAKE,c.constraint=a);b=b.next}else a.component.woken=!0},constraintCbSleep:function(a){if(null!=a.cbSet)for(var b=a.cbSet.conlisteners.head;null!=b;){var c= b.elt;c.event==f.id_CbEvent_SLEEP&&(c=this.push_callback(c),c.event=f.id_CbEvent_SLEEP,c.constraint=a);b=b.next}},constraintCbBreak:function(a){if(null!=a.cbSet)for(var b=a.cbSet.conlisteners.head;null!=b;){var c=b.elt;c.event==f.id_CbEvent_BREAK&&(c=this.push_callback(c),c.event=f.id_CbEvent_BREAK,c.constraint=a);b=b.next}},nullListenerType:function(a,b){for(var c=new jd,d=a.interactors.head;null!=d;)c.add(d.elt),d=d.next;if(a!=b)for(d=b.interactors.head;null!=d;)c.add(d.elt),d=d.next;for(;null!= c.head;)if(d=c.pop_unsafe(),null!=d.icompound){for(var d=d.icompound,e=d.bodies.head;null!=e;)c.add(e.elt),e=e.next;for(d=d.compounds.head;null!=d;)c.add(d.elt),d=d.next}else{e=null!=d.ibody?d.ibody:d.ishape.body;d=null!=d.ishape?d.ishape:null;for(e=e.arbiters.head;null!=e;){var f=e.elt;if(0!=f.present&&(null==d||f.ws1==d||f.ws2==d)){this.MRCA_chains(f.ws1,f.ws2);for(f=this.mrca1.head;null!=f;){var g=f.elt;if(!(g.cbSet!=a&&g.cbSet!=b))for(var h=this.mrca2.head;null!=h;){var j=h.elt;if(!(g.cbSet== a&&j.cbSet!=b||g.cbSet==b&&j.cbSet!=a))if(j=sa.get(g,j),null!=j){for(;null!=j.arbiters.head;)j.arbiters.pop_unsafe().present--;this.remove_callbackset(j)}h=h.next}f=f.next}}e=e.next}}},nullInteractorType:function(a,b){null==b&&(b=a);if(null!=a.icompound){for(var c=a.icompound,d=c.bodies.head;null!=d;)this.nullInteractorType(d.elt,b),d=d.next;for(c=c.compounds.head;null!=c;)this.nullInteractorType(c.elt,b),c=c.next}else{d=null!=a.ibody?a.ibody:a.ishape.body;c=null!=a.ishape?a.ishape:null;for(d=d.arbiters.head;null!= d;){var e=d.elt;if(0!=e.present&&(null==c||e.ws1==c||e.ws2==c)){this.MRCA_chains(e.ws1,e.ws2);for(var f=this.mrca1.head;null!=f;){for(var g=f.elt,h=this.mrca2.head;null!=h;){var j=h.elt;g!=b&&j!=b||(j=sa.get(g,j),null!=j&&(e.present--,j.remove_arb(e),null==j.arbiters.head&&this.remove_callbackset(j)));h=h.next}f=f.next}}d=d.next}}},freshListenerType:function(a,b){for(var c=new jd,d=a.interactors.head;null!=d;)c.add(d.elt),d=d.next;if(a!=b)for(d=b.interactors.head;null!=d;)c.add(d.elt),d=d.next;for(;null!= c.head;)if(d=c.pop_unsafe(),null!=d.icompound){for(var d=d.icompound,e=d.bodies.head;null!=e;)c.add(e.elt),e=e.next;for(d=d.compounds.head;null!=d;)c.add(d.elt),d=d.next}else{e=null!=d.ibody?d.ibody:d.ishape.body;d=null!=d.ishape?d.ishape:null;for(e=e.arbiters.head;null!=e;){var f=e.elt;if(f.presentable&&(null==d||f.ws1==d||f.ws2==d)){this.MRCA_chains(f.ws1,f.ws2);for(var g=this.mrca1.head;null!=g;){var h=g.elt;if(!(h.cbSet!=a&&h.cbSet!=b))for(var j=this.mrca2.head;null!=j;){var k=j.elt;if(!(h.cbSet== a&&k.cbSet!=b||h.cbSet==b&&k.cbSet!=a)){var l=sa.get(h,k);null==l&&(l=Ua.get(h,k),this.add_callbackset(l));if(k=!l.arbiters.inlined_has(f))l.arbiters.inlined_add(f),k=!0;k&&f.present++}j=j.next}g=g.next}}e=e.next}}},freshInteractorType:function(a,b){null==b&&(b=a);if(null!=a.icompound){for(var c=a.icompound,d=c.bodies.head;null!=d;)this.freshInteractorType(d.elt,b),d=d.next;for(c=c.compounds.head;null!=c;)this.freshInteractorType(c.elt,b),c=c.next}else{d=null!=a.ibody?a.ibody:a.ishape.body;c=null!= a.ishape?a.ishape:null;for(d=d.arbiters.head;null!=d;){var e=d.elt;if(e.presentable&&(null==c||e.ws1==c||e.ws2==c)){this.MRCA_chains(e.ws1,e.ws2);for(var f=this.mrca1.head;null!=f;){for(var g=f.elt,h=this.mrca2.head;null!=h;){var j=h.elt;if(!(g!=b&&j!=b)){var k=g.cbSet,l=j.cbSet;k.validate();l.validate();if(!k.manager.pair(k,l).empty_intersection()){k=sa.get(g,j);null==k&&(k=Ua.get(g,j),this.add_callbackset(k));if(j=!k.arbiters.inlined_has(e))k.arbiters.inlined_add(e),j=!0;j&&e.present++}}h=h.next}f= f.next}}d=d.next}}},wakeCompound:function(a){for(var b=a.bodies.head;null!=b;){var c=b.elt;c.world||(c.component.waket=this.stamp+(this.midstep?0:1),c.type==f.id_BodyType_KINEMATIC&&(c.kinematicDelaySleep=!0),c.component.sleeping&&this.really_wake(c,!1));b=b.next}for(b=a.constraints.head;null!=b;)this.wake_constraint(b.elt),b=b.next;for(a=a.compounds.head;null!=a;)this.wakeCompound(a.elt),a=a.next},wakeIsland:function(a){for(;null!=a.comps.head;){var b=a.comps.pop_unsafe();b.waket=this.stamp+(this.midstep? 0:1);if(b.isBody){var c=b.body;this.live.add(c);for(var d=c.arbiters.head;null!=d;){var e=d.elt;e.sleeping&&(e.sleeping=!1,e.up_stamp+=this.stamp-e.sleep_stamp,e.type==K.COL?(e=e.colarb,e.stat?this.c_arbiters_true.inlined_add(e):this.c_arbiters_false.inlined_add(e)):e.type==K.FLUID?this.f_arbiters.inlined_add(e.fluidarb):this.s_arbiters.inlined_add(e.sensorarb));d=d.next}this.bodyCbWake(c);b.sleeping=!1;b.island=null;b.parent=b;b.rank=0;if(c.type!=f.id_BodyType_STATIC)for(b=c.shapes.head;null!=b;)c= b.elt,null!=c.node&&this.bphase.sync(c),b=b.next}else c=b.constraint,this.live_constraints.inlined_add(c),this.constraintCbWake(c),b.sleeping=!1,b.island=null,b.parent=b,b.rank=0}a.next=Rb.zpp_pool;Rb.zpp_pool=a},non_inlined_wake:function(a,b){null==b&&(b=!1);a.world||(a.component.waket=this.stamp+(this.midstep?0:1),a.type==f.id_BodyType_KINEMATIC&&(a.kinematicDelaySleep=!0),a.component.sleeping&&this.really_wake(a,b))},really_wake:function(a,b){null==b&&(b=!1);if(null==a.component.island){a.component.sleeping= !1;a.type==f.id_BodyType_KINEMATIC||a.type==f.id_BodyType_STATIC?this.staticsleep.inlined_add(a):this.live.inlined_add(a);for(var c=a.constraints.head;null!=c;){var d=c.elt;d.space==this&&this.wake_constraint(d);c=c.next}for(c=a.arbiters.head;null!=c;){d=c.elt;if(d.sleeping)if(d.sleeping=!1,d.up_stamp+=this.stamp+(this.midstep?0:1)-d.sleep_stamp,d.type==K.COL){var e=d.colarb;e.stat?this.c_arbiters_true.inlined_add(e):this.c_arbiters_false.inlined_add(e)}else d.type==K.FLUID?this.f_arbiters.inlined_add(d.fluidarb): this.s_arbiters.inlined_add(d.sensorarb);d.type!=K.SENSOR&&!d.cleared&&d.up_stamp>=this.stamp&&0!=(d.immState&f.id_ImmState_ACCEPT)&&(d.b1.type==f.id_BodyType_DYNAMIC&&d.b1.component.sleeping&&(e=d.b1,e.world||(e.component.waket=this.stamp+(this.midstep?0:1),e.type==f.id_BodyType_KINEMATIC&&(e.kinematicDelaySleep=!0),e.component.sleeping&&this.really_wake(e,!1))),d.b2.type==f.id_BodyType_DYNAMIC&&d.b2.component.sleeping&&(d=d.b2,d.world||(d.component.waket=this.stamp+(this.midstep?0:1),d.type==f.id_BodyType_KINEMATIC&& (d.kinematicDelaySleep=!0),d.component.sleeping&&this.really_wake(d,!1))));c=c.next}!b&&a.type==f.id_BodyType_DYNAMIC&&this.bodyCbWake(a);if(!b&&!this.bphase.is_sweep&&a.type!=f.id_BodyType_STATIC)for(c=a.shapes.head;null!=c;)d=c.elt,null!=d.node&&this.bphase.sync(d),c=c.next}else this.wakeIsland(a.component.island)},wake_constraint:function(a,b){null==b&&(b=!1);return a.active&&(a.component.waket=this.stamp+(this.midstep?0:1),a.component.sleeping)?(null==a.component.island?(a.component.sleeping= !1,this.live_constraints.inlined_add(a),a.wake_connected(),b||this.constraintCbWake(a)):this.wakeIsland(a.component.island),!0):!1},doForests:function(a){for(var b=this.c_arbiters_false.head;null!=b;){var c=b.elt;if(!c.cleared&&c.up_stamp==this.stamp&&0!=(c.immState&f.id_ImmState_ACCEPT)&&c.b1.type==f.id_BodyType_DYNAMIC&&c.b2.type==f.id_BodyType_DYNAMIC){var d;if(c.b1.component==c.b1.component.parent)d=c.b1.component;else{d=c.b1.component;for(var e=null;d!=d.parent;){var g=d.parent;d.parent=e;e= d;d=g}for(;null!=e;)g=e.parent,e.parent=d,e=g}if(c.b2.component==c.b2.component.parent)c=c.b2.component;else{c=c.b2.component;for(e=null;c!=c.parent;)g=c.parent,c.parent=e,e=c,c=g;for(;null!=e;)g=e.parent,e.parent=c,e=g}d!=c&&(d.rankc.rank?c.parent=d:(c.parent=d,d.rank++))}b=b.next}for(b=this.f_arbiters.head;null!=b;){c=b.elt;if(!c.cleared&&c.up_stamp==this.stamp&&0!=(c.immState&f.id_ImmState_ACCEPT)&&c.b1.type==f.id_BodyType_DYNAMIC&&c.b2.type==f.id_BodyType_DYNAMIC){if(c.b1.component== c.b1.component.parent)d=c.b1.component;else{d=c.b1.component;for(e=null;d!=d.parent;)g=d.parent,d.parent=e,e=d,d=g;for(;null!=e;)g=e.parent,e.parent=d,e=g}if(c.b2.component==c.b2.component.parent)c=c.b2.component;else{c=c.b2.component;for(e=null;c!=c.parent;)g=c.parent,c.parent=e,e=c,c=g;for(;null!=e;)g=e.parent,e.parent=c,e=g}d!=c&&(d.rankc.rank?c.parent=d:(c.parent=d,d.rank++))}b=b.next}for(b=this.live_constraints.head;null!=b;)b.elt.forest(),b=b.next;for(;null!=this.live.head;){d= this.live.inlined_pop_unsafe();b=d.component;if(b==b.parent)c=b;else{c=b;for(e=null;c!=c.parent;)g=c.parent,c.parent=e,e=c,c=g;for(;null!=e;)g=e.parent,e.parent=c,e=g}null==c.island&&(null==Rb.zpp_pool?c.island=new Rb:(c.island=Rb.zpp_pool,Rb.zpp_pool=c.island.next,c.island.next=null),c.island.waket=0,this.islands.inlined_add(c.island),c.island.sleep=!0);b.island=c.island;b.island.comps.inlined_add(b);d=d.atRest(a);b.island.sleep=b.island.sleep&&d;b.waket>b.island.waket&&(b.island.waket=b.waket)}for(;null!= this.live_constraints.head;){a=this.live_constraints.inlined_pop_unsafe().component;if(a==a.parent)b=a;else{b=a;for(d=null;b!=b.parent;)c=b.parent,b.parent=d,d=b,b=c;for(;null!=d;)c=d.parent,d.parent=b,d=c}a.island=b.island;a.island.comps.inlined_add(a);a.waket>a.island.waket&&(a.island.waket=a.waket)}for(;null!=this.islands.next;)if(a=this.islands.inlined_pop_unsafe(),a.sleep)for(a=a.comps.head;null!=a;){d=a.elt;if(d.isBody){b=d.body;b.velx=0;b.vely=0;b.angvel=0;d.sleeping=!0;for(d=b.shapes.head;null!= d;)this.bphase.sync(d.elt),d=d.next;this.bodyCbSleep(b)}else this.constraintCbSleep(d.constraint),d.sleeping=!0;a=a.next}else{for(;null!=a.comps.head;)b=a.comps.inlined_pop_unsafe(),b.waket=a.waket,b.isBody?this.live.inlined_add(b.body):this.live_constraints.inlined_add(b.constraint),b.sleeping=!1,b.island=null,b.parent=b,b.rank=0;a.next=Rb.zpp_pool;Rb.zpp_pool=a}},sleepArbiters:function(){var a=null,b=this.c_arbiters_true,c=b.head,d=null!=this.c_arbiters_false;d&&null==c&&(d=!1,c=this.c_arbiters_false.head, b=this.c_arbiters_false,a=null);for(;null!=c;){var e=c.elt;e.b1.component.sleeping&&e.b2.component.sleeping?(e.sleep_stamp=this.stamp,e.sleeping=!0,c=b.inlined_erase(a)):(a=c,c=c.next);d&&null==c&&(d=!1,c=this.c_arbiters_false.head,b=this.c_arbiters_false,a=null)}a=null;b=this.f_arbiters;c=b.head;d=!1;for(;null!=c;)e=c.elt,e.b1.component.sleeping&&e.b2.component.sleeping?(e.sleep_stamp=this.stamp,e.sleeping=!0,c=b.inlined_erase(a)):(a=c,c=c.next),d&&null==c&&(d=!1,c=null.begin(),a=b=null);a=null; b=this.s_arbiters;c=b.head;d=!1;for(;null!=c;)e=c.elt,e.b1.component.sleeping&&e.b2.component.sleeping?(e.sleep_stamp=this.stamp,e.sleeping=!0,c=b.inlined_erase(a)):(a=c,c=c.next),d&&null==c&&(d=!1,c=null.begin(),a=b=null)},static_validation:function(a){null!=a.shapes.head&&a.validate_aabb();a.validate_mass();a.validate_inertia();for(var b=a.shapes.head;null!=b;){var c=b.elt;c.type==f.id_ShapeType_POLYGON&&(c.polygon.splice_collinear(),c.polygon.validate_gaxi());b=b.next}a.sweepFrozen=!0},validation:function(){this.cbsets.validate(); for(var a=this.live.head;null!=a;){var b=a.elt;b.sweepRadius=0;for(var c=b.shapes.head;null!=c;){var d=c.elt;d.type==f.id_ShapeType_POLYGON&&(d.polygon.splice_collinear(),d.polygon.validate_gaxi());d.validate_sweepRadius();d.sweepRadius>b.sweepRadius&&(b.sweepRadius=d.sweepRadius);c=c.next}b.validate_mass();b.validate_inertia();null!=b.shapes.head&&(b.validate_aabb(),b.validate_worldCOM());b.validate_gravMass();b.zip_axis&&(b.zip_axis=!1,b.axisx=Math.sin(b.rot),b.axisy=Math.cos(b.rot),null);if(b.component.woken&& null!=b.cbSet)for(c=b.cbSet.bodylisteners.head;null!=c;)d=c.elt,d.event==f.id_CbEvent_WAKE&&(d=this.push_callback(d),d.event=f.id_CbEvent_WAKE,d.body=b),c=c.next;b.component.woken=!1;for(b=b.shapes.head;null!=b;)this.bphase.sync(b.elt),b=b.next;a=a.next}for(a=this.kinematics.head;null!=a;){b=a.elt;b.sweepRadius=0;for(c=b.shapes.head;null!=c;)d=c.elt,d.type==f.id_ShapeType_POLYGON&&(d.polygon.splice_collinear(),d.polygon.validate_gaxi()),d.validate_sweepRadius(),d.sweepRadius>b.sweepRadius&&(b.sweepRadius= d.sweepRadius),c=c.next;b.validate_mass();b.validate_inertia();null!=b.shapes.head&&(b.validate_aabb(),b.validate_worldCOM());b.validate_gravMass();b.zip_axis&&(b.zip_axis=!1,b.axisx=Math.sin(b.rot),b.axisy=Math.cos(b.rot),null);for(b=b.shapes.head;null!=b;)this.bphase.sync(b.elt),b=b.next;a=a.next}for(a=this.live_constraints.head;null!=a;){b=a.elt;if(b.active){if(b.component.woken&&null!=b.cbSet)for(c=b.cbSet.conlisteners.head;null!=c;)d=c.elt,d.event==f.id_CbEvent_WAKE&&(d=this.push_callback(d), d.event=f.id_CbEvent_WAKE,d.constraint=b),c=c.next;b.component.woken=!1}a=a.next}},updateVel:function(a){for(var b=1-a*this.global_lin_drag,c=1-a*this.global_ang_drag,d=this.live.head;null!=d;){var e=d.elt;if(0!=e.smass){var f=a*e.imass;e.velx=b*e.velx+(e.forcex+this.gravityx*e.gravMass)*f;e.vely=b*e.vely+(e.forcey+this.gravityy*e.gravMass)*f}if(0!=e.sinertia){var g=f=0,f=e.worldCOMx-e.posx,g=e.worldCOMy-e.posy;e.angvel=c*e.angvel+(e.torque+(this.gravityy*f-this.gravityx*g)*e.gravMass)*a*e.iinertia}d= d.next}},updatePos:function(a){for(var b=2*Math.PI/a,c=this.live.head;null!=c;){var d=c.elt;d.pre_posx=d.posx;d.pre_posy=d.posy;d.pre_rot=d.rot;d.sweepTime=0;d.sweep_angvel=d.angvel%b;d.sweepIntegrate(a);if(d.disableCCD)d.sweepFrozen=!0,d.bullet=!1;else{var e=n.staticCCDLinearThreshold*d.sweepRadius,g=n.staticCCDAngularThreshold;if((d.velx*d.velx+d.vely*d.vely)*a*a>e*e||d.angvel*d.angvel*a*a>g*g||d.type==f.id_BodyType_KINEMATIC){e=d.sweep_angvel;0>e&&(e=-e);for(var g=1/e,h=d.shapes.head;null!=h;){var k= h.elt,j=k.aabb,o=j.minx,l=j.miny,m=j.maxx,q=j.maxy,r=0.008333333333333333*e*a*k.sweepCoef|0;8j.maxx?j.maxx=m:m=j.maxx;q>j.maxy?j.maxy=q:q=j.maxy;for(var u=1;uj.maxx?j.maxx=m:m=j.maxx;q>j.maxy?j.maxy=q:q=j.maxy}this.bphase.sync(k);h=h.next}d.sweepFrozen=!1;if(d.type==f.id_BodyType_DYNAMIC&&d.bulletEnabled&&(e=n.bulletCCDLinearThreshold*d.sweepRadius,g=n.bulletCCDAngularThreshold,(d.velx*d.velx+d.vely*d.vely)*a*a>e*e||d.angvel*d.angvel*a*a>g*g))d.bullet=!0}else d.sweepFrozen=!0,d.bullet=!1}c=c.next}for(c=this.kinematics.head;null!=c;){d=c.elt;d.pre_posx=d.posx;d.pre_posy=d.posy;d.pre_rot=d.rot;d.sweepTime=0;d.sweep_angvel= d.angvel%b;d.sweepIntegrate(a);if(d.disableCCD)d.sweepFrozen=!0,d.bullet=!1;else if(e=n.staticCCDLinearThreshold*d.sweepRadius,g=n.staticCCDAngularThreshold,(d.velx*d.velx+d.vely*d.vely)*a*a>e*e||d.angvel*d.angvel*a*a>g*g||d.type==f.id_BodyType_KINEMATIC){e=d.sweep_angvel;0>e&&(e=-e);g=1/e;for(h=d.shapes.head;null!=h;){k=h.elt;j=k.aabb;o=j.minx;l=j.miny;m=j.maxx;q=j.maxy;r=0.008333333333333333*e*a*k.sweepCoef|0;8j.maxx?j.maxx=m:m=j.maxx;q>j.maxy?j.maxy=q:q=j.maxy;for(u=1;uj.maxx?j.maxx=m:m=j.maxx,q>j.maxy?j.maxy=q:q=j.maxy;this.bphase.sync(k);h=h.next}d.sweepFrozen=!1;if(d.type==f.id_BodyType_DYNAMIC&&d.bulletEnabled&&(e=n.bulletCCDLinearThreshold* d.sweepRadius,g=n.bulletCCDAngularThreshold,(d.velx*d.velx+d.vely*d.vely)*a*a>e*e||d.angvel*d.angvel*a*a>g*g))d.bullet=!0}else d.sweepFrozen=!0,d.bullet=!1;c=c.next}},presteparb:function(a,b,c){null==c&&(c=!1);var d=this;if(!a.cleared&&a.b1.component.sleeping&&a.b2.component.sleeping)return a.sleep_stamp=this.stamp,a.sleeping=!0;if(!a.cleared||0!=a.present||a.intchange){var e=!c&&a.up_stamp==this.stamp-1&&!a.cleared&&!a.intchange,c=a.fresh&&!a.cleared&&!a.intchange;e&&(a.endGenerated=this.stamp); if(c||e||a.cleared||a.intchange){this.inlined_MRCA_chains(a.ws1,a.ws2);for(e=this.mrca1.head;null!=e;){for(var g=e.elt,h=this.mrca2.head;null!=h;){var k=h.elt,j=g.cbSet,m=k.cbSet;if(!j.manager.pair(j,m).empty_intersection()){var l=[sa.get(g,k)];if(c||a.intchange){null==l[0]&&(l[0]=Ua.get(g,k),this.add_callbackset(l[0]));j.manager.pair(j,m).forall(f.id_CbEvent_BEGIN,function(b){return function(c){if(0!=(c.itype&a.type)&&b[0].empty_arb(c.itype)){var e=d.push_callback(c);e.event=f.id_CbEvent_BEGIN;sa.int_callback(b[0], c,e);e.set=b[0]}}}(l));if(k=!l[0].arbiters.inlined_has(a))l[0].arbiters.inlined_add(a),k=!0;k&&a.present++}else a.present--,l[0].remove_arb(a),j.manager.pair(j,m).forall(f.id_CbEvent_END,function(b){return function(c){if(0!=(c.itype&a.type)&&b[0].empty_arb(c.itype)){var e=d.push_callback(c);e.event=f.id_CbEvent_END;sa.int_callback(b[0],c,e);e.set=b[0]}}}(l)),null==l[0].arbiters.head&&this.remove_callbackset(l[0])}h=h.next}e=e.next}}a.fresh=!1;a.intchange=!1}if(a.cleared||a.up_stamp+(a.type==K.COL? n.arbiterExpirationDelay:0)b.type?(l=b,n=a):a.type==b.type?a.id=Math.POSITIVE_INFINITY||s.s2.material.elasticity>=Math.POSITIVE_INFINITY?1:(s.s1.material.elasticity+s.s2.material.elasticity)/2,0>s.restitution&&(s.restitution=0),1c.aabb.minx)){for(;null!=c.prev&&c.prev.aabb.minx>a.aabb.minx;)c=c.prev;var d=a.prev;d.next=a.next;null!=a.next&& (a.next.prev=d);null==c.prev?(a.prev=null,this.list=a,a.next=c,c.prev=a):(a.prev=c.prev,c.prev=a,a.prev.next=a,a.next=c)}a=b}},broadphase:function(a,b){if(null!=this.list){this.sync_broadphase_fast();for(var c=this.list;null!=c;){for(var d=c.next,e=c.shape,g=e.body,h=c.aabb.maxx;null!=d&&!(d.aabb.minx>h);){var k=d.shape,j=k.body;if(j!=g&&!(g.type==f.id_BodyType_STATIC&&j.type==f.id_BodyType_STATIC)&&(!g.component.sleeping||!j.component.sleeping))e.aabb.intersectY(k.aabb)&&(b?a.narrowPhase(e,k,g.type!= f.id_BodyType_DYNAMIC||j.type!=f.id_BodyType_DYNAMIC,null,!1):a.continuousEvent(e,k,g.type!=f.id_BodyType_DYNAMIC||j.type!=f.id_BodyType_DYNAMIC,null,!1));d=d.next}c=c.next}}},__class__:qf});var qg=function(){this.length=0;this.modified=this.pushmod=!1;this.head=null};h["zpp_nape.util.ZNPList_ZPP_CallbackSet"]=qg;qg.__name__=["zpp_nape","util","ZNPList_ZPP_CallbackSet"];qg.prototype={inlined_add:function(a){var b;null==wd.zpp_pool?b=new wd:(b=wd.zpp_pool,wd.zpp_pool=b.next,b.next=null);null;b.elt= a;b.next=this.head;this.head=b;this.modified=!0;this.length++;return a},inlined_try_remove:function(a){for(var b=null,c=this.head,d=!1;null!=c;){if(c.elt==a){this.inlined_erase(b);d=!0;break}b=c;c=c.next}return d},inlined_erase:function(a){var b,c;null==a?(b=this.head,this.head=c=b.next,null==this.head&&(this.pushmod=!0)):(b=a.next,c=b.next,a.next=c,null==c&&(this.pushmod=!0));a=b;a.elt=null;a.next=wd.zpp_pool;wd.zpp_pool=a;this.modified=!0;this.length--;this.pushmod=!0;return c},__class__:qg};var Xd= function(){this.length=0;this.modified=this.pushmod=!1;this.head=null};h["zpp_nape.util.ZNPList_ZPP_Shape"]=Xd;Xd.__name__=["zpp_nape","util","ZNPList_ZPP_Shape"];Xd.prototype={add:function(a){return this.inlined_add(a)},inlined_add:function(a){var b;null==Sb.zpp_pool?b=new Sb:(b=Sb.zpp_pool,Sb.zpp_pool=b.next,b.next=null);null;b.elt=a;b.next=this.head;this.head=b;this.modified=!0;this.length++;return a},insert:function(a,b){return this.inlined_insert(a,b)},inlined_insert:function(a,b){var c;null== Sb.zpp_pool?c=new Sb:(c=Sb.zpp_pool,Sb.zpp_pool=c.next,c.next=null);null;c.elt=b;null==a?(c.next=this.head,this.head=c):(c.next=a.next,a.next=c);this.pushmod=this.modified=!0;this.length++;return c},remove:function(a){this.inlined_try_remove(a)},inlined_try_remove:function(a){for(var b=null,c=this.head,d=!1;null!=c;){if(c.elt==a){this.inlined_erase(b);d=!0;break}b=c;c=c.next}return d},inlined_erase:function(a){var b,c;null==a?(b=this.head,this.head=c=b.next,null==this.head&&(this.pushmod=!0)):(b= a.next,c=b.next,a.next=c,null==c&&(this.pushmod=!0));a=b;a.elt=null;a.next=Sb.zpp_pool;Sb.zpp_pool=a;this.modified=!0;this.length--;this.pushmod=!0;return c},iterator_at:function(a){for(var b=this.head;0