(function(scope){ var CryptoJS=CryptoJS||function(o){function t(){}var e={},n=e.lib={},i=n.Base={extend:function(e){t.prototype=this;var n=new t;return e&&n.mixIn(e),n.hasOwnProperty("init")||(n.init=function(){n.$super.init.apply(this,arguments)}),(n.init.prototype=n).$super=this,n},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var n in e)e.hasOwnProperty(n)&&(this[n]=e[n]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},d=n.WordArray=i.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=null!=n?n:4*e.length},toString:function(e){return(e||s).stringify(this)},concat:function(e){var n=this.words,t=e.words,i=this.sigBytes;if(e=e.sigBytes,this.clamp(),i%4)for(var r=0;r>>2]|=(t[r>>>2]>>>24-r%4*8&255)<<24-(i+r)%4*8;else if(65535>>2]=t[r>>>2];else n.push.apply(n,t);return this.sigBytes+=e,this},clamp:function(){var e=this.words,n=this.sigBytes;e[n>>>2]&=4294967295<<32-n%4*8,e.length=o.ceil(n/4)},clone:function(){var e=i.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var n=[],t=0;t>>2]>>>24-i%4*8&255;t.push((r>>>4).toString(16)),t.push((15&r).toString(16))}return t.join("")},parse:function(e){for(var n=e.length,t=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new d.init(t,n/2)}},a=r.Latin1={stringify:function(e){var n=e.words;e=e.sigBytes;for(var t=[],i=0;i>>2]>>>24-i%4*8&255));return t.join("")},parse:function(e){for(var n=e.length,t=[],i=0;i>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new d.init(t,n)}},u=r.Utf8={stringify:function(e){try{return decodeURIComponent(escape(a.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return a.parse(unescape(encodeURIComponent(e)))}},l=n.BufferedBlockAlgorithm=i.extend({reset:function(){this._data=new d.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var n=this._data,t=n.words,i=n.sigBytes,r=this.blockSize,s=i/(4*r);if(e=(s=e?o.ceil(s):o.max((0|s)-this._minBufferSize,0))*r,i=o.min(4*e,i),e){for(var a=0;a>>7)^(v<<14|v>>>18)^v>>>3)+m[c-7]+((g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10)+m[c-16]}v=l+((o<<26|o>>>6)^(o<<21|o>>>11)^(o<<7|o>>>25))+(o&d^~o&u)+f[c]+m[c],g=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&r^i&s^r&s),l=u,u=d,d=o,o=a+v|0,a=s,s=r,r=i,i=v+g|0}t[0]=t[0]+i|0,t[1]=t[1]+r|0,t[2]=t[2]+s|0,t[3]=t[3]+a|0,t[4]=t[4]+o|0,t[5]=t[5]+d|0,t[6]=t[6]+u|0,t[7]=t[7]+l|0},_doFinalize:function(){var e=this._data,n=e.words,t=8*this._nDataBytes,i=8*e.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(64+i>>>9<<4)]=r.floor(t/4294967296),n[15+(64+i>>>9<<4)]=t,e.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});n.SHA256=i._createHelper(s),n.HmacSHA256=i._createHmacHelper(s)}(Math),function(){var u=CryptoJS.enc.Utf8;CryptoJS.algo.HMAC=CryptoJS.lib.Base.extend({init:function(e,n){e=this._hasher=new e.init,"string"==typeof n&&(n=u.parse(n));var t=e.blockSize,i=4*t;n.sigBytes>i&&(n=e.finalize(n)),n.clamp();for(var r=this._oKey=n.clone(),s=this._iKey=n.clone(),a=r.words,o=s.words,d=0;d>>2]>>>24-r%4*8&255)<<16|(n[r+1>>>2]>>>24-(r+1)%4*8&255)<<8|n[r+2>>>2]>>>24-(r+2)%4*8&255,a=0;a<4&&r+.75*a>>6*(3-a)&63));if(n=i.charAt(64))for(;e.length%4;)e.push(n);return e.join("")},parse:function(e){var n=e.length,t=this._map;!(i=t.charAt(64))||-1!=(i=e.indexOf(i))&&(n=i);for(var i=[],r=0,s=0;s>>6-s%4*2;i[r>>>2]|=(a|o)<<24-r%4*8,r++}return d.create(i,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),function(e){var n,t,i,r,s,a,o,d,u,l,c,v,g;(n=e.EGAErrorSeverity||(e.EGAErrorSeverity={}))[n.Undefined=0]="Undefined",n[n.Debug=1]="Debug",n[n.Info=2]="Info",n[n.Warning=3]="Warning",n[n.Error=4]="Error",n[n.Critical=5]="Critical",(t=e.EGAProgressionStatus||(e.EGAProgressionStatus={}))[t.Undefined=0]="Undefined",t[t.Start=1]="Start",t[t.Complete=2]="Complete",t[t.Fail=3]="Fail",(i=e.EGAResourceFlowType||(e.EGAResourceFlowType={}))[i.Undefined=0]="Undefined",i[i.Source=1]="Source",i[i.Sink=2]="Sink",(r=e.EGAAdAction||(e.EGAAdAction={}))[r.Undefined=0]="Undefined",r[r.Clicked=1]="Clicked",r[r.Show=2]="Show",r[r.FailedShow=3]="FailedShow",r[r.RewardReceived=4]="RewardReceived",(s=e.EGAAdError||(e.EGAAdError={}))[s.Undefined=0]="Undefined",s[s.Unknown=1]="Unknown",s[s.Offline=2]="Offline",s[s.NoFill=3]="NoFill",s[s.InternalError=4]="InternalError",s[s.InvalidRequest=5]="InvalidRequest",s[s.UnableToPrecache=6]="UnableToPrecache",(a=e.EGAAdType||(e.EGAAdType={}))[a.Undefined=0]="Undefined",a[a.Video=1]="Video",a[a.RewardedVideo=2]="RewardedVideo",a[a.Playable=3]="Playable",a[a.Interstitial=4]="Interstitial",a[a.OfferWall=5]="OfferWall",a[a.Banner=6]="Banner",o=e.http||(e.http={}),(d=o.EGAHTTPApiResponse||(o.EGAHTTPApiResponse={}))[d.NoResponse=0]="NoResponse",d[d.BadResponse=1]="BadResponse",d[d.RequestTimeout=2]="RequestTimeout",d[d.JsonEncodeFailed=3]="JsonEncodeFailed",d[d.JsonDecodeFailed=4]="JsonDecodeFailed",d[d.InternalServerError=5]="InternalServerError",d[d.BadRequest=6]="BadRequest",d[d.Unauthorized=7]="Unauthorized",d[d.UnknownResponseCode=8]="UnknownResponseCode",d[d.Ok=9]="Ok",d[d.Created=10]="Created",u=e.events||(e.events={}),(l=u.EGASdkErrorCategory||(u.EGASdkErrorCategory={}))[l.Undefined=0]="Undefined",l[l.EventValidation=1]="EventValidation",l[l.Database=2]="Database",l[l.Init=3]="Init",l[l.Http=4]="Http",l[l.Json=5]="Json",(c=u.EGASdkErrorArea||(u.EGASdkErrorArea={}))[c.Undefined=0]="Undefined",c[c.BusinessEvent=1]="BusinessEvent",c[c.ResourceEvent=2]="ResourceEvent",c[c.ProgressionEvent=3]="ProgressionEvent",c[c.DesignEvent=4]="DesignEvent",c[c.ErrorEvent=5]="ErrorEvent",c[c.InitHttp=9]="InitHttp",c[c.EventsHttp=10]="EventsHttp",c[c.ProcessEvents=11]="ProcessEvents",c[c.AddEventsToStore=12]="AddEventsToStore",c[c.AdEvent=20]="AdEvent",(v=u.EGASdkErrorAction||(u.EGASdkErrorAction={}))[v.Undefined=0]="Undefined",v[v.InvalidCurrency=1]="InvalidCurrency",v[v.InvalidShortString=2]="InvalidShortString",v[v.InvalidEventPartLength=3]="InvalidEventPartLength",v[v.InvalidEventPartCharacters=4]="InvalidEventPartCharacters",v[v.InvalidStore=5]="InvalidStore",v[v.InvalidFlowType=6]="InvalidFlowType",v[v.StringEmptyOrNull=7]="StringEmptyOrNull",v[v.NotFoundInAvailableCurrencies=8]="NotFoundInAvailableCurrencies",v[v.InvalidAmount=9]="InvalidAmount",v[v.NotFoundInAvailableItemTypes=10]="NotFoundInAvailableItemTypes",v[v.WrongProgressionOrder=11]="WrongProgressionOrder",v[v.InvalidEventIdLength=12]="InvalidEventIdLength",v[v.InvalidEventIdCharacters=13]="InvalidEventIdCharacters",v[v.InvalidProgressionStatus=15]="InvalidProgressionStatus",v[v.InvalidSeverity=16]="InvalidSeverity",v[v.InvalidLongString=17]="InvalidLongString",v[v.DatabaseTooLarge=18]="DatabaseTooLarge",v[v.DatabaseOpenOrCreate=19]="DatabaseOpenOrCreate",v[v.JsonError=25]="JsonError",v[v.FailHttpJsonDecode=29]="FailHttpJsonDecode",v[v.FailHttpJsonEncode=30]="FailHttpJsonEncode",v[v.InvalidAdAction=31]="InvalidAdAction",v[v.InvalidAdType=32]="InvalidAdType",v[v.InvalidString=33]="InvalidString",(g=u.EGASdkErrorParameter||(u.EGASdkErrorParameter={}))[g.Undefined=0]="Undefined",g[g.Currency=1]="Currency",g[g.CartType=2]="CartType",g[g.ItemType=3]="ItemType",g[g.ItemId=4]="ItemId",g[g.Store=5]="Store",g[g.FlowType=6]="FlowType",g[g.Amount=7]="Amount",g[g.Progression01=8]="Progression01",g[g.Progression02=9]="Progression02",g[g.Progression03=10]="Progression03",g[g.EventId=11]="EventId",g[g.ProgressionStatus=12]="ProgressionStatus",g[g.Severity=13]="Severity",g[g.Message=14]="Message",g[g.AdAction=15]="AdAction",g[g.AdType=16]="AdType",g[g.AdSdkName=17]="AdSdkName",g[g.AdPlacement=18]="AdPlacement"}(gameanalytics=gameanalytics||{});var gameanalytics,EGAErrorSeverity=gameanalytics.EGAErrorSeverity,EGAProgressionStatus=gameanalytics.EGAProgressionStatus,EGAResourceFlowType=gameanalytics.EGAResourceFlowType;!function(e){!function(e){var t,n;(n=t=t||{})[n.Error=0]="Error",n[n.Warning=1]="Warning",n[n.Info=2]="Info",n[n.Debug=3]="Debug";var i=(r.setInfoLog=function(e){r.instance.infoLogEnabled=e},r.setVerboseLog=function(e){r.instance.infoLogVerboseEnabled=e},r.i=function(e){if(r.instance.infoLogEnabled){var n="Info/"+r.Tag+": "+e;r.instance.sendNotificationMessage(n,t.Info)}},r.w=function(e){var n="Warning/"+r.Tag+": "+e;r.instance.sendNotificationMessage(n,t.Warning)},r.e=function(e){var n="Error/"+r.Tag+": "+e;r.instance.sendNotificationMessage(n,t.Error)},r.ii=function(e){if(r.instance.infoLogVerboseEnabled){var n="Verbose/"+r.Tag+": "+e;r.instance.sendNotificationMessage(n,t.Info)}},r.d=function(e){if(r.debugEnabled){var n="Debug/"+r.Tag+": "+e;r.instance.sendNotificationMessage(n,t.Debug)}},r.prototype.sendNotificationMessage=function(e,n){switch(n){case t.Error:console.error(e);break;case t.Warning:console.warn(e);break;case t.Debug:"function"==typeof console.debug?console.debug(e):console.log(e);break;case t.Info:console.log(e)}},r.instance=new r,r.Tag="GameAnalytics",r);function r(){r.debugEnabled=!1}e.GALogger=i}(e.logging||(e.logging={}))}(gameanalytics=gameanalytics||{}),function(e){var n,u,t;function l(){}n=e.utilities||(e.utilities={}),u=e.logging.GALogger,l.getHmac=function(e,n){var t=CryptoJS.HmacSHA256(n,e);return CryptoJS.enc.Base64.stringify(t)},l.stringMatch=function(e,n){return!(!e||!n)&&n.test(e)},l.joinStringArray=function(e,n){for(var t="",i=0,r=e.length;i>2,r=(3&n)<<4|(t=e.charCodeAt(u++))>>4,s=(15&t)<<2|(o=e.charCodeAt(u++))>>6,d=63&o,isNaN(t)?s=d=64:isNaN(o)&&(d=64),a=a+l.keyStr.charAt(i)+l.keyStr.charAt(r)+l.keyStr.charAt(s)+l.keyStr.charAt(d),n=t=o=0,i=r=s=d=0,ue)return d.w(s+" validation failed: array cannot exceed "+e+" values. It has "+r.length+" values."),!1;for(var a=0;av.MaxNumberOfEntries},v.select=function(e,n,t,i){void 0===n&&(n=[]),void 0===t&&(t=!1),void 0===i&&(i=0);var r=v.getStore(e);if(!r)return null;for(var s=[],a=0;ai&&(s=s.slice(0,i+1)),s},v.update=function(e,n,t){void 0===t&&(t=[]);var i=v.getStore(e);if(!i)return!1;for(var r=0;r=u.MaxCount)){var s=o.getHmac(i,t),a=new XMLHttpRequest;a.onreadystatechange=function(){if(4===a.readyState){if(!a.responseText)return;if(200!=a.status)return void d.w("sdk error failed. response code not 200. status code: "+a.status+", description: "+a.statusText+", body: "+a.responseText);u.countMap[n]=u.countMap[n]+1}},a.open("POST",e,!0),a.setRequestHeader("Content-Type","application/json"),a.setRequestHeader("Authorization",s);try{a.send(t)}catch(e){console.error(e)}}},u.MaxCount=10,u.countMap={},u.timestampMap={},t=u,n.SdkErrorTask=t}(gameanalytics=gameanalytics||{}),function(e){var l,p,S,c,A,h,v,g,f,m,n;function y(){this.protocol="https",this.hostName="api.gameanalytics.com",this.version="v2",this.remoteConfigsVersion="v1",this.baseUrl=this.protocol+"://"+this.hostName+"/"+this.version,this.remoteConfigsBaseUrl=this.protocol+"://"+this.hostName+"/remote_configs/"+this.remoteConfigsVersion,this.initializeUrlPath="init",this.eventsUrlPath="events",this.useGzip=!1}l=e.http||(e.http={}),p=e.state.GAState,S=e.logging.GALogger,c=e.utilities.GAUtilities,A=e.validators.GAValidator,h=e.tasks.SdkErrorTask,v=e.events.EGASdkErrorCategory,g=e.events.EGASdkErrorArea,f=e.events.EGASdkErrorAction,m=e.events.EGASdkErrorParameter,y.prototype.requestInit=function(e,n){var t=p.getGameKey(),i=this.remoteConfigsBaseUrl+"/"+this.initializeUrlPath+"?game_key="+t+"&interval_seconds=0&configs_hash="+e,r=p.getInitAnnotations(),s=JSON.stringify(r);if(s){var a=this.createPayloadData(s,this.useGzip),o=[];o.push(s),y.sendRequest(i,a,o,this.useGzip,y.initRequestCallback,n)}else n(l.EGAHTTPApiResponse.JsonEncodeFailed,null)},y.prototype.sendEventsInArray=function(e,n,t){if(0!=e.length){var i=p.getGameKey(),r=this.baseUrl+"/"+i+"/"+this.eventsUrlPath,s=JSON.stringify(e);if(s){var a=this.createPayloadData(s,this.useGzip),o=[];o.push(s),o.push(n),o.push(e.length.toString()),y.sendRequest(r,a,o,this.useGzip,y.sendEventInArrayRequestCallback,t)}else t(l.EGAHTTPApiResponse.JsonEncodeFailed,null,n,e.length)}},y.prototype.sendSdkErrorEvent=function(e,n,t,i,r,s,a){if(p.isEventSubmissionEnabled()&&A.validateSdkErrorEvent(s,a,e,n,t)){var o,d=this.baseUrl+"/"+s+"/"+this.eventsUrlPath,u="",l=p.getSdkErrorEventAnnotations(),c=y.sdkErrorCategoryString(e);u+=l.error_category=c;var v=y.sdkErrorAreaString(n);u+=":"+(l.error_area=v);var g=y.sdkErrorActionString(t);l.error_action=g;var f=y.sdkErrorParameterString(i);if(0y.MAX_ERROR_MESSAGE_LENGTH&&(m=r.substring(0,y.MAX_ERROR_MESSAGE_LENGTH)),l.reason=m}var E=[];E.push(l),(o=JSON.stringify(E))?h.execute(d,u,o,a):S.w("sendSdkErrorEvent: JSON encoding failed.")}},y.sendEventInArrayRequestCallback=function(e,n,t,i){void 0===i&&(i=null),i[0],i[1];var r,s,a=i[2],o=parseInt(i[3]);r=e.responseText,s=e.status;var d=y.instance.processRequestResponse(s,e.statusText,r,"Events");if(d==l.EGAHTTPApiResponse.Ok||d==l.EGAHTTPApiResponse.Created||d==l.EGAHTTPApiResponse.BadRequest){var u=r?JSON.parse(r):{};if(null==u)return t(l.EGAHTTPApiResponse.JsonDecodeFailed,null,a,o),void y.instance.sendSdkErrorEvent(v.Http,g.EventsHttp,f.FailHttpJsonDecode,m.Undefined,r,p.getGameKey(),p.getGameSecret());l.EGAHTTPApiResponse.BadRequest,t(d,u,a,o)}else t(d,null,a,o)},y.sendRequest=function(e,n,t,i,r,s){var a=new XMLHttpRequest,o=p.getGameSecret(),d=c.getHmac(o,n),u=[];for(var l in u.push(d),t)u.push(t[l]);if(a.onreadystatechange=function(){4===a.readyState&&r(a,e,s,u)},a.open("POST",e,!0),a.setRequestHeader("Content-Type","application/json"),a.setRequestHeader("Authorization",d),i)throw new Error("gzip not supported");try{a.send(n)}catch(e){console.error(e.stack)}},y.initRequestCallback=function(e,n,t,i){var r,s;void 0===i&&(i=null),i[0],i[1],r=e.responseText,s=e.status;var a=r?JSON.parse(r):{},o=y.instance.processRequestResponse(s,e.statusText,r,"Init");if(o==l.EGAHTTPApiResponse.Ok||o==l.EGAHTTPApiResponse.Created||o==l.EGAHTTPApiResponse.BadRequest){if(null==a)return t(l.EGAHTTPApiResponse.JsonDecodeFailed,null,"",0),void y.instance.sendSdkErrorEvent(v.Http,g.InitHttp,f.FailHttpJsonDecode,m.Undefined,r,p.getGameKey(),p.getGameSecret());if(o!==l.EGAHTTPApiResponse.BadRequest){var d=A.validateAndCleanInitRequestResponse(a,o===l.EGAHTTPApiResponse.Created);d?t(o,d,"",0):t(l.EGAHTTPApiResponse.BadResponse,null,"",0)}else t(o,null,"",0)}else t(o,null,"",0)},y.prototype.createPayloadData=function(e,n){if(n)throw new Error("gzip not supported");return e},y.prototype.processRequestResponse=function(e,n,t,i){return t?200===e?l.EGAHTTPApiResponse.Ok:201===e?l.EGAHTTPApiResponse.Created:0===e||401===e?l.EGAHTTPApiResponse.Unauthorized:400===e?l.EGAHTTPApiResponse.BadRequest:500===e?l.EGAHTTPApiResponse.InternalServerError:l.EGAHTTPApiResponse.UnknownResponseCode:l.EGAHTTPApiResponse.NoResponse},y.sdkErrorCategoryString=function(e){switch(e){case v.EventValidation:return"event_validation";case v.Database:return"db";case v.Init:return"init";case v.Http:return"http";case v.Json:return"json"}return""},y.sdkErrorAreaString=function(e){switch(e){case g.BusinessEvent:return"business";case g.ResourceEvent:return"resource";case g.ProgressionEvent:return"progression";case g.DesignEvent:return"design";case g.ErrorEvent:return"error";case g.InitHttp:return"init_http";case g.EventsHttp:return"events_http";case g.ProcessEvents:return"process_events";case g.AddEventsToStore:return"add_events_to_store"}return""},y.sdkErrorActionString=function(e){switch(e){case f.InvalidCurrency:return"invalid_currency";case f.InvalidShortString:return"invalid_short_string";case f.InvalidEventPartLength:return"invalid_event_part_length";case f.InvalidEventPartCharacters:return"invalid_event_part_characters";case f.InvalidStore:return"invalid_store";case f.InvalidFlowType:return"invalid_flow_type";case f.StringEmptyOrNull:return"string_empty_or_null";case f.NotFoundInAvailableCurrencies:return"not_found_in_available_currencies";case f.InvalidAmount:return"invalid_amount";case f.NotFoundInAvailableItemTypes:return"not_found_in_available_item_types";case f.WrongProgressionOrder:return"wrong_progression_order";case f.InvalidEventIdLength:return"invalid_event_id_length";case f.InvalidEventIdCharacters:return"invalid_event_id_characters";case f.InvalidProgressionStatus:return"invalid_progression_status";case f.InvalidSeverity:return"invalid_severity";case f.InvalidLongString:return"invalid_long_string";case f.DatabaseTooLarge:return"db_too_large";case f.DatabaseOpenOrCreate:return"db_open_or_create";case f.JsonError:return"json_error";case f.FailHttpJsonDecode:return"fail_http_json_decode";case f.FailHttpJsonEncode:return"fail_http_json_encode"}return""},y.sdkErrorParameterString=function(e){switch(e){case m.Currency:return"currency";case m.CartType:return"cart_type";case m.ItemType:return"item_type";case m.ItemId:return"item_id";case m.Store:return"store";case m.FlowType:return"flow_type";case m.Amount:return"amount";case m.Progression01:return"progression01";case m.Progression02:return"progression02";case m.Progression03:return"progression03";case m.EventId:return"event_id";case m.ProgressionStatus:return"progression_status";case m.Severity:return"severity";case m.Message:return"message"}return""},y.instance=new y,y.MAX_ERROR_MESSAGE_LENGTH=256,n=y,l.GAHTTPApi=n}(gameanalytics=gameanalytics||{}),function(g){var f,m,E,p,S,A,h,u,y,b,e;function C(){}f=g.events||(g.events={}),m=g.store.GAStore,E=g.store.EGAStore,p=g.store.EGAStoreArgsOperator,S=g.state.GAState,A=g.logging.GALogger,h=g.utilities.GAUtilities,u=g.http.EGAHTTPApiResponse,y=g.http.GAHTTPApi,b=g.validators.GAValidator,C.addSessionStartEvent=function(){if(S.isEventSubmissionEnabled()){var e={};e.category=C.CategorySessionStart,S.incrementSessionNum(),m.setItem(S.getGameKey(),S.SessionNumKey,S.getSessionNum().toString()),C.addDimensionsToEvent(e),C.addEventToStore(e),A.i("Add SESSION START event"),C.processEvents(C.CategorySessionStart,!1)}},C.addSessionEndEvent=function(){if(S.isEventSubmissionEnabled()){var e=S.getSessionStart(),n=S.getClientTsAdjusted()-e;n<0&&(A.w("Session length was calculated to be less then 0. Should not be possible. Resetting to 0."),n=0);var t={};t.category=C.CategorySessionEnd,t.length=n,C.addDimensionsToEvent(t),C.addEventToStore(t),A.i("Add SESSION END event."),C.processEvents("",!1)}},C.addBusinessEvent=function(e,n,t,i,r,s){if(void 0===r&&(r=null),S.isEventSubmissionEnabled()){var a=b.validateBusinessEvent(e,n,r,t,i);if(null==a){var o={};S.incrementTransactionNum(),m.setItem(S.getGameKey(),S.TransactionNumKey,S.getTransactionNum().toString()),o.event_id=t+":"+i,o.category=C.CategoryBusiness,o.currency=e,o.amount=n,o[S.TransactionNumKey]=S.getTransactionNum(),r&&(o.cart_type=r),C.addDimensionsToEvent(o),C.addFieldsToEvent(o,S.validateAndCleanCustomFields(s)),A.i("Add BUSINESS event: {currency:"+e+", amount:"+n+", itemType:"+t+", itemId:"+i+", cartType:"+r+"}"),C.addEventToStore(o)}else y.instance.sendSdkErrorEvent(a.category,a.area,a.action,a.parameter,a.reason,S.getGameKey(),S.getGameSecret())}},C.addResourceEvent=function(e,n,t,i,r,s){if(S.isEventSubmissionEnabled()){var a=b.validateResourceEvent(e,n,t,i,r,S.getAvailableResourceCurrencies(),S.getAvailableResourceItemTypes());if(null==a){e===g.EGAResourceFlowType.Sink&&(t*=-1);var o={},d=C.resourceFlowTypeToString(e);o.event_id=d+":"+n+":"+i+":"+r,o.category=C.CategoryResource,o.amount=t,C.addDimensionsToEvent(o),C.addFieldsToEvent(o,S.validateAndCleanCustomFields(s)),A.i("Add RESOURCE event: {currency:"+n+", amount:"+t+", itemType:"+i+", itemId:"+r+"}"),C.addEventToStore(o)}else y.instance.sendSdkErrorEvent(a.category,a.area,a.action,a.parameter,a.reason,S.getGameKey(),S.getGameSecret())}},C.addProgressionEvent=function(e,n,t,i,r,s,a){if(S.isEventSubmissionEnabled()){var o=C.progressionStatusToString(e),d=b.validateProgressionEvent(e,n,t,i);if(null==d){var u,l={};u=t?i?n+":"+t+":"+i:n+":"+t:n,l.category=C.CategoryProgression,l.event_id=o+":"+u;var c=0;s&&e!=g.EGAProgressionStatus.Start&&(l.score=r),e===g.EGAProgressionStatus.Fail&&S.incrementProgressionTries(u),e===g.EGAProgressionStatus.Complete&&(S.incrementProgressionTries(u),c=S.getProgressionTries(u),l.attempt_num=c,S.clearProgressionTries(u)),C.addDimensionsToEvent(l),C.addFieldsToEvent(l,S.validateAndCleanCustomFields(a)),A.i("Add PROGRESSION event: {status:"+o+", progression01:"+n+", progression02:"+t+", progression03:"+i+", score:"+r+", attempt:"+c+"}"),C.addEventToStore(l)}else y.instance.sendSdkErrorEvent(d.category,d.area,d.action,d.parameter,d.reason,S.getGameKey(),S.getGameSecret())}},C.addDesignEvent=function(e,n,t,i){if(S.isEventSubmissionEnabled()){var r=b.validateDesignEvent(e);if(null==r){var s={};s.category=C.CategoryDesign,s.event_id=e,t&&(s.value=n),C.addDimensionsToEvent(s),C.addFieldsToEvent(s,S.validateAndCleanCustomFields(i)),A.i("Add DESIGN event: {eventId:"+e+", value:"+n+"}"),C.addEventToStore(s)}else y.instance.sendSdkErrorEvent(r.category,r.area,r.action,r.parameter,r.reason,S.getGameKey(),S.getGameSecret())}},C.addErrorEvent=function(e,n,t){if(S.isEventSubmissionEnabled()){var i=C.errorSeverityToString(e),r=b.validateErrorEvent(e,n);if(null==r){var s={};s.category=C.CategoryError,s.severity=i,s.message=n,C.addDimensionsToEvent(s),C.addFieldsToEvent(s,S.validateAndCleanCustomFields(t)),A.i("Add ERROR event: {severity:"+i+", message:"+n+"}"),C.addEventToStore(s)}else y.instance.sendSdkErrorEvent(r.category,r.area,r.action,r.parameter,r.reason,S.getGameKey(),S.getGameSecret())}},C.addAdEvent=function(e,n,t,i,r,s,a,o){if(S.isEventSubmissionEnabled()){var d=C.adActionToString(e),u=C.adTypeToString(n),l=C.adErrorToString(r),c=b.validateAdEvent(e,n,t,i);if(null==c){var v={};v.category=C.CategoryAds,v.ad_sdk_name=t,v.ad_placement=i,v.ad_type=u,v.ad_action=d,e==g.EGAAdAction.FailedShow&&0C.MaxEventCount){if(!(a=m.select(E.Events,i,!0,C.MaxEventCount)))return;var o=a[a.length-1].client_ts;if(i.push(["client_ts",p.LessOrEqual,o]),!(a=m.select(E.Events,i)))return;r.push(["client_ts",p.LessOrEqual,o])}if(A.i("Event queue: Sending "+a.length+" events."),!m.update(E.Events,s,r))return;for(var d=[],u=0;u