1 line
242 KiB
Plaintext
1 line
242 KiB
Plaintext
{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///node_modules/@ionic/core/dist/esm lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack:///src/app/app.component.html","webpack:///src/app/home/home.page.html","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.scss","webpack:///src/app/app.component.ts","webpack:///src/app/app.module.ts","webpack:///src/app/home/home.page.scss","webpack:///src/app/home/home.page.ts","webpack:///src/app/services/database/database.service.ts","webpack:///src/app/services/getlocation/getlocation.service.ts","webpack:///src/app/shared/app.global.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","keys","webpackAsyncContextKeys","Object","module","exports","all","slice","routes","path","redirectTo","pathMatch","component","loadChildren","AppRoutingModule","imports","forRoot","preloadingStrategy","AppComponent","platform","splashScreen","statusBar","initializeApp","ready","styleDefault","hide","selector","template","AppModule","declarations","entryComponents","scrollPadding","scrollAssist","providers","provide","useClass","bootstrap","HomePage","navCtrl","screenOrientation","database","appVersion","batteryStatus","getLocation","router","_global","device","numTaps","modalVis","consciousnessVis","consciousnessConfirmState","consciousnessStateColour","showInputBox","minutesUnconscious","greyMeOut","avpuState","airwayState","breathingState","circulationState","consciousnessState","consciousnessSelectYes","consciousnessSelectNo","consciousnessSpacing","consciousnessMinutes","consciousnessClass","confirm1","confirmBtn1","confirmedBtn1","confirm2","confirm2TopState","confirm2BottomState","confirmBtn2","confirmedBtn2","confirm3","confirm3TopState","confirm3BottomState","confirmBtn3","confirmedBtn3","confirm4","confirm4TopState","confirm4BottomState","confirmBtn4","confirmedBtn4","confirmConsciousness","confirmFinal","confirm1Tick","confirm2Tick","confirm3Tick","confirm4Tick","confirmFinalTick","unresponsiveFlag","cdFlag","burnFlag","adultChokingFlag","avpuSlidesOpts","direction","initialSlide","height","proceedable","aboutVis","aiberVersion","lock","ORIENTATIONS","LANDSCAPE","data","personLabel","appConfig","personLabelUpper","toUpperCase","supportLocation","staffType","findMe","getVersionNumber","version","alert","avpuSlides","getActiveIndex","currentIndex","console","log","subscription","onChange","subscribe","status","theBattery","level","slideTo","startSession","navigate","getMyLocation","error","theCoords","indexOf","toggleConsciousness","uncUnit","finalMinutes","fasSlides","update","lockSwipes","slideNext","lockSwipeToNext","isBeginning","setTimeout","DatabaseService","getmylocation","http","network","sqlite","sqlitePorter","storage","dbReady","theSQL","theSessionID","theCasComplaint","gpsLat","gpsLong","systemTime","Date","toISOString","substring","replace","aiberChat","host","base_path","start_base_path","chat_base_path","groundtyping_base_path","groundchat_base_path","casualty_base_path","netConn","sessionStartedOK","startAVPU","startA","startB","startC","startCon","startStreamed","casualty","complaint","history","gender","dob","age","alcohol","allergies","allergydetails","medicinetaken","medhist","flight","seat","arrivalairport","lastmeal","detailsadded","detailssent","detailsack","netStatusIcon","netWarningText","dataStreamed","httpOptions","headers","create","name","location","db","get","responseType","sql","importSqlToDb","_","clearDatabase","next","startQueue","reject","connectSubscription","onConnect","type","disconnectSubscription","onDisconnect","stopQueue","queue","setInterval","displayNetworkWarning","sendUnsentItems","startupQueue","streamStart","clearInterval","showWarning","updateSQL","executeSql","rows","length","i","item","messagetype","entryname","entryvalue","entryvalue2","repdetailid","getUnixTime","outcome","streamData","err","getAck","updateLocalTyping","updateRemoteTyping","ErrorEvent","message","JSON","stringify","statusText","post","pipe","handleError","chat","msgTime","incidentTime","sJSON","sendChat","parse","casualtyJSON","sendCasualty","avpu","a","b","c","u","reportTime","avpuStatus","aStatus","bStatus","cStatus","uStatus","streamSessionStart","mType","eType","eVal1","eVal2","sandsStatus","treatmentStatus","sCompare","streamObs","asObservable","groundChats","incidentid","controlmsg","msgtime","atmistInjuries","push","atmistEntryLogged","entrylogged","substr","atmistSign","atmistValue","atmistSignLine","sqlBatch","warn","ud","unixTime","getTime","unixTimestamp","dateObj","returnString","addZero","getHours","getMinutes","getSeconds","d","theDate","theMonth","getFullYear","getMonth","getDate","theSaveTime","toString","result","streamCasualty","con","theTime","getCurrentTime","theSessionTime","uuid","set","incomingSQL","hOI","fixSQL","sSQL","batteryLevel","abc","abcVal","statusVal","vital","vitalVal","sands","sandsVal","toTitleCase","witnessed","incoming","outgoing","firstChar","restOfString","toLowerCase","treatment","treatmentVal","theTreatment","shocks","pulse","resps","conc","casComplaint","casFName","casLName","casDOB","casAge","casGender","casHomeAddress","casFlight","casSeat","casAirport","casLastMeal","casAlcohol","casAllergyAnswer","casAllergyDetails","casMedicine","casMedicalHistory","internalSQL","casDetails","fname","lname","address","casFirstName","casLastName","casFullName","theYear","theHour","theMinute","theSecond","avpudetail","atmistAVPU","atmistA","atmistB","atmistC","atmistCons","reportdetail","theProperTOI","formatDateProperly","loggedat","theNLGTOI","formatDateNLG","atmistTOI","atmistNLGTOI","atmistComplaint","atmistSigns","atmistTreatment","providedIn","GetlocationService","geolocation","myLat","myLong","getCurrentPosition","timeout","resp","coords","latitude","longitude","myCoords","theLAT","theLONG","AppGlobals","personLocation","personDestinationCentre","environment","production","bootstrapModule"],"mappings":"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","file":"main-es5.js","sourcesContent":["var map = {\n\t\"./main/main.module\": [\n\t\t\"./src/app/main/main.module.ts\",\n\t\t\"main-main-module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ion-action-sheet.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-action-sheet.entry.js\",\n\t\t\"common\",\n\t\t0\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-alert.entry.js\",\n\t\t\"common\",\n\t\t1\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js\",\n\t\t\"common\",\n\t\t2\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-avatar_3.entry.js\",\n\t\t\"common\",\n\t\t3\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-back-button.entry.js\",\n\t\t\"common\",\n\t\t4\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-backdrop.entry.js\",\n\t\t5\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-button_2.entry.js\",\n\t\t\"common\",\n\t\t6\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-card_5.entry.js\",\n\t\t\"common\",\n\t\t7\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-checkbox.entry.js\",\n\t\t\"common\",\n\t\t8\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-chip.entry.js\",\n\t\t\"common\",\n\t\t9\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-col_3.entry.js\",\n\t\t10\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-datetime_3.entry.js\",\n\t\t\"common\",\n\t\t11\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-fab_3.entry.js\",\n\t\t\"common\",\n\t\t12\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-img.entry.js\",\n\t\t13\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2.entry.js\",\n\t\t14\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-input.entry.js\",\n\t\t\"common\",\n\t\t15\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item-option_3.entry.js\",\n\t\t\"common\",\n\t\t16\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item_8.entry.js\",\n\t\t\"common\",\n\t\t17\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-loading.entry.js\",\n\t\t\"common\",\n\t\t18\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-menu_3.entry.js\",\n\t\t\"common\",\n\t\t19\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-modal.entry.js\",\n\t\t\"common\",\n\t\t20\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-nav_2.entry.js\",\n\t\t\"common\",\n\t\t21\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-popover.entry.js\",\n\t\t\"common\",\n\t\t22\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-progress-bar.entry.js\",\n\t\t\"common\",\n\t\t23\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-radio_2.entry.js\",\n\t\t\"common\",\n\t\t24\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-range.entry.js\",\n\t\t\"common\",\n\t\t25\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-refresher_2.entry.js\",\n\t\t\"common\",\n\t\t26\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-reorder_2.entry.js\",\n\t\t\"common\",\n\t\t27\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-ripple-effect.entry.js\",\n\t\t28\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-route_4.entry.js\",\n\t\t\"common\",\n\t\t29\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-searchbar.entry.js\",\n\t\t\"common\",\n\t\t30\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-segment_2.entry.js\",\n\t\t\"common\",\n\t\t31\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-select_3.entry.js\",\n\t\t\"common\",\n\t\t32\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-slide_2.entry.js\",\n\t\t33\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-spinner.entry.js\",\n\t\t\"common\",\n\t\t34\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-split-pane.entry.js\",\n\t\t35\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab-bar_2.entry.js\",\n\t\t\"common\",\n\t\t36\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab_2.entry.js\",\n\t\t\"common\",\n\t\t37\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-text.entry.js\",\n\t\t\"common\",\n\t\t38\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-textarea.entry.js\",\n\t\t\"common\",\n\t\t39\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toast.entry.js\",\n\t\t\"common\",\n\t\t40\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toggle.entry.js\",\n\t\t\"common\",\n\t\t41\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-virtual-scroll.entry.js\",\n\t\t42\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./node_modules/@ionic/core/dist/esm lazy recursive ^\\\\.\\\\/.*\\\\.entry\\\\.js$ include: \\\\.entry\\\\.js$ exclude: \\\\.system\\\\.entry\\\\.js$\";\nmodule.exports = webpackAsyncContext;","export default \"<ion-app>\\n <ion-router-outlet></ion-router-outlet>\\n</ion-app>\\n\";","export default \"<ion-content class=\\\"stopScroll\\\">\\n <div class=\\\"aiber-ion-header\\\">\\n <div class=\\\"headerHolder\\\">\\n <!--<ion-button color=\\\"primary\\\" class=\\\"echoButton\\\" (click)=\\\"echoTest()\\\">ECHO</ion-button>-->\\n <img src=\\\"assets/imgs/aiber-logo.png\\\" class=\\\"headerLogo\\\" (click)=\\\"updateTaps()\\\" />\\n <img src=\\\"assets/imgs/about.png\\\" class=\\\"aboutAiber\\\" (click)=\\\"showAboutInfo()\\\" />\\n <img src=\\\"assets/imgs/top-wedge.png\\\" class=\\\"topWedge\\\" />\\n <img src=\\\"assets/imgs/firstaidsymbol.png\\\" class=\\\"firstAidSymbolTop\\\" (click)=\\\"toggleFAS()\\\" />\\n </div>\\n </div>\\n <!-- FIRST AID MODAL POPUP -->\\n <div class=\\\"overlay {{ modalVis }}\\\"></div>\\n <div class=\\\"modal_content fasZ fasModal {{ modalVis }}\\\">\\n <h1>First Aid steps</h1>\\n <img src=\\\"assets/imgs/close.png\\\" class=\\\"closeButton\\\" (click)=\\\"toggleFAS()\\\" />\\n <ion-slides #fasSlider effect=\\\"slide\\\" centeredSlides=\\\"true\\\" class=\\\"fasSlides\\\" (ionSlideDidChange)=\\\"fasLockSwipes()\\\">\\n <ion-slide>\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row (click)=\\\"showUnresponsive()\\\">\\n <ion-col size=\\\"2\\\">\\n <img src=\\\"assets/imgs/fasunresponsive.png\\\" />\\n </ion-col>\\n <ion-col>\\n <h1 class=\\\"fasMenuItems\\\">Unresponsive and not breathing</h1>\\n </ion-col>\\n </ion-row>\\n <ion-row (click)=\\\"showCDHolder()\\\">\\n <ion-col size=\\\"2\\\">\\n <img src=\\\"assets/imgs/cdv1.png\\\" />\\n </ion-col>\\n <ion-col>\\n <h1 class=\\\"fasMenuItems\\\">Communicable Diseases</h1>\\n </ion-col>\\n </ion-row>\\n <ion-row (click)=\\\"showBurns()\\\">\\n <ion-col size=\\\"2\\\">\\n <img src=\\\"assets/imgs/fasburn.png\\\" />\\n </ion-col>\\n <ion-col>\\n <h1 class=\\\"fasMenuItems\\\">Burn or Scald</h1>\\n </ion-col>\\n </ion-row>\\n <ion-row (click)=\\\"showAdultChoking()\\\">\\n <ion-col size=\\\"2\\\">\\n <img src=\\\"assets/imgs/faschoking.png\\\" />\\n </ion-col>\\n <ion-col>\\n <h1 class=\\\"fasMenuItems\\\">Adult choking</h1>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </div>\\n </ion-slide>\\n\\n <!-- UNRESPONSIVE -->\\n <ion-slide *ngIf=\\\"unresponsiveFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1>Alert {{staffType}} for help</h1>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swipe.png\\\" class=\\\"swipe\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"unresponsiveFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1>\\n Move {{personLabelUpper}} onto the floor, if safe and\\n appropriate to do so\\n </h1>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swipe.png\\\" class=\\\"swipe\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"unresponsiveFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1>Look and feel for breaths</h1>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <img src=\\\"assets/imgs/fasscreen4.png\\\" class=\\\"fasScreenImgs\\\" />\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swipe.png\\\" class=\\\"swipe\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"unresponsiveFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1 class=\\\"smallerH1\\\">\\n If still unresponsive and not breathing, start chest\\n compressions – push downwards in the middle of the chest with\\n firm compressions, at a rate of 100-120 compressions per\\n minute.<br />\\n </h1>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col size=\\\"6\\\" class=\\\"col-left\\\">\\n <img src=\\\"assets/imgs/fasscreen5.png\\\" class=\\\"fasScreenImgs smaller\\\" />\\n </ion-col>\\n <ion-col size=\\\"6\\\" class=\\\"col-right\\\">\\n <img src=\\\"assets/imgs/FAS-attempt1.png\\\" class=\\\"fasScreenImgs smaller\\\" />\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swipe.png\\\" class=\\\"swipe\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"unresponsiveFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1 class=\\\"smallerH1\\\">\\n Give two breaths after every 30 chest compressions, if safe to\\n do so.\\n </h1>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <img src=\\\"assets/imgs/fasscreen6.png\\\" class=\\\"fasScreenImgs\\\" />\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <ion-button size=\\\"large\\\" color=\\\"primary\\\" class=\\\"wideButton\\\" (click)=\\\"toggleFAS()\\\">\\n FINISH\\n </ion-button>\\n </div>\\n <h2></h2>\\n </ion-slide>\\n <!-- END OF UNRESPONSIVE -->\\n\\n <!-- COMMUNICABLE DISEASE -->\\n <ion-slide *ngIf=\\\"cdFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1>Communicable disease risk calculator</h1>\\n <div class=\\\"smallerH1 centreText\\\">To be included...</div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swiperight.png\\\" class=\\\"swipe\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"cdFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1>Communicable disease risk calculator</h1>\\n <div class=\\\"smallerH1 centreText\\\">To be included...</div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swiperight.png\\\" class=\\\"swipe\\\" />\\n </div>\\n </ion-slide>\\n\\n <!-- END OF COMMUNICABLE DISEASE -->\\n\\n <!-- BURN OR SCALD -->\\n <ion-slide *ngIf=\\\"burnFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1>Alert {{staffType}} for help</h1>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swipe.png\\\" class=\\\"swipe\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"burnFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1 class=\\\"smallerH1 centreText\\\">\\n Do <strong>NOT</strong> remove any clothing stuck to the\\n affected area\\n </h1>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <img src=\\\"assets/imgs/fasburn1.png\\\" class=\\\"fasScreenImgs\\\" />\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swipe.png\\\" class=\\\"swipe\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"burnFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1 class=\\\"smallerH1\\\">\\n Cool the burn - Run cold water over the burn for at least 10\\n minutes. <strong>AVOID</strong> ice, creams or greasy\\n ointments. Do <strong>NOT</strong> attempt to touch the burn\\n or pop any blisters that appear\\n </h1>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <img src=\\\"assets/imgs/fasburn4.png\\\" class=\\\"fasScreenImgs\\\" />\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swipe.png\\\" class=\\\"swipePositionedRight\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"burnFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1>\\n Once the burn is cooled, cover with a burns dressing from\\n aircraft medical kit.\\n </h1>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swipe.png\\\" class=\\\"swipe\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"burnFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid class=\\\"nomargin\\\">\\n <ion-row>\\n <ion-col class=\\\"nopadding\\\">\\n <h1 class=\\\"smallerH1\\\">\\n <strong>REMEMBER</strong> – A burn or scald can cause shock!\\n Keep your {{personLabel}} warm by offering an aircraft\\n blanket. Be sure the blanket does\\n <strong>NOT</strong>\\n come into contact with the burn or scald.\\n </h1>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col class=\\\"nopadding\\\">\\n <img src=\\\"assets/imgs/fasburn2.png\\\" class=\\\"fasScreenImgs\\\" />\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <ion-button size=\\\"large\\\" color=\\\"primary\\\" class=\\\"wideButton\\\" (click)=\\\"toggleFAS()\\\">\\n FINISH\\n </ion-button>\\n </div>\\n </ion-slide>\\n\\n <!-- END OF BURN OR SCALD -->\\n\\n <!-- COMMUNICABLE DISEASE -->\\n <ion-slide *ngIf=\\\"cdFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1>Communicable disease risk calculator</h1>\\n <div class=\\\"smallerH1 centreText\\\">To be included...</div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swiperight.png\\\" class=\\\"swipe\\\" />\\n </div>\\n </ion-slide>\\n\\n <!-- END OF COMMUNICABLE DISEASE -->\\n\\n <!-- ADULT CHOKING -->\\n <ion-slide *ngIf=\\\"adultChokingFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <h1>Alert cabin crew for help</h1>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swipe.png\\\" class=\\\"swipe\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"adultChokingFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <div class=\\\"smallerH1\\\">\\n Help the {{personLabel}} bend forwards. With the heel of your\\n hand, hit the {{personLabel}} sharply on their back between\\n the shoulder blades. Give up to 5 back slaps.\\n </div>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <img src=\\\"assets/imgs/fasbackslaps.png\\\" class=\\\"fasScreenImgs\\\" /><br />\\n <h1 class=\\\"smallerH1\\\">\\n If back slaps are unsuccessful, swipe to next screen\\n </h1>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swipe.png\\\" class=\\\"swipePositionedRight\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"adultChokingFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <div class=\\\"smallerH1\\\">\\n Move {{personLabel}} to aisle (or another appropriate space),\\n give up to 5 abdominal thrusts. Standing behind the\\n {{personLabel}}, join your hands around their tummy button and\\n make a fist. Pull your hands sharply inwards and upwards.\\n </div>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <img src=\\\"assets/imgs/fasabdthrust.png\\\" class=\\\"fasScreenImgs\\\" /><br />\\n <h1 class=\\\"smallerH1\\\">\\n If abdominal thrusts are unsuccessful, swipe to next screen\\n </h1>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <img src=\\\"assets/imgs/swipe.png\\\" class=\\\"swipePositionedRight\\\" />\\n </div>\\n </ion-slide>\\n\\n <ion-slide *ngIf=\\\"adultChokingFlag\\\">\\n <div class=\\\"innerSlide\\\">\\n <ion-grid>\\n <ion-row>\\n <ion-col>\\n <div class=\\\"smallerH1\\\">\\n Continue to alternate between back slaps and abdominal thrusts\\n until they are successful, OR the {{personLabel}} becomes\\n unresponsive.<br /><br />\\n <!--If at any\\n time they become unresponsive AND are not breathing, tap below for further advice<br><br>-->\\n <ion-button size=\\\"large\\\" color=\\\"danger\\\" class=\\\"wideTallButton\\\" (click)=\\\"openUANB()\\\">\\n UNRESPONSIVE AND<br />NOT BREATHING\\n </ion-button>\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n <ion-button size=\\\"large\\\" color=\\\"primary\\\" class=\\\"wideButton\\\" (click)=\\\"toggleFAS()\\\">\\n FINISH\\n </ion-button>\\n </div>\\n </ion-slide>\\n\\n <!-- END OF ADULT CHOKING -->\\n </ion-slides>\\n </div>\\n <!-- END OF FIRST AID MODAL POPUP -->\\n\\n <!-- CONSCIOUSNESS MODAL POPUP -->\\n <div class=\\\"overlay {{ consciousnessVis }}\\\"></div>\\n <div class=\\\"modal_content consciousnessZ consciousnessModal {{\\n consciousnessVis\\n }}\\\">\\n <h1>Has the {{personLabelUpper}} been unconscious?</h1>\\n <img src=\\\"assets/imgs/close.png\\\" class=\\\"closeButton\\\" (click)=\\\"toggleConsciousness()\\\" />\\n <div class=\\\"consciousnessHolder\\\">\\n <div class=\\\"wideButton buttonLeft m30 {{ consciousnessSelectYes }}\\\" (click)=\\\"setConsciousness('yes')\\\">\\n Yes\\n </div>\\n <div class=\\\"wideButton buttonRight {{ consciousnessSelectNo }}\\\" (click)=\\\"setConsciousness('no')\\\">\\n No\\n </div>\\n </div>\\n <div class=\\\"howLong {{ showInputBox }}\\\">\\n <div class=\\\"howLongInput\\\">For <strong>LESS</strong> than:</div>\\n <ion-grid class=\\\"howLongMinutes\\\">\\n <ion-row>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('10s')\\\">\\n 10s\\n </div>\\n </ion-col>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('30s')\\\">\\n 30s\\n </div>\\n </ion-col>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('1m')\\\">\\n 1m\\n </div>\\n </ion-col>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('2m')\\\">\\n 2m\\n </div>\\n </ion-col>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('3m')\\\">\\n 3m\\n </div>\\n </ion-col>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('4m')\\\">\\n 4m\\n </div>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('5m')\\\">\\n 5m\\n </div>\\n </ion-col>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('10m')\\\">\\n 10m\\n </div>\\n </ion-col>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('15m')\\\">\\n 15m\\n </div>\\n </ion-col>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('20m')\\\">\\n 20m\\n </div>\\n </ion-col>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('25m')\\\">\\n 25m\\n </div>\\n </ion-col>\\n <ion-col>\\n <div color=\\\"danger\\\" class=\\\"okButton {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('30m')\\\">\\n 30m\\n </div>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col size=\\\"12\\\">\\n <div class=\\\"howLongInputOR\\\">OR:</div>\\n </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col size=\\\"6\\\">\\n <div color=\\\"danger\\\" class=\\\"okButtonWide {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('+30m')\\\">\\n More than 30 mins\\n </div>\\n </ion-col>\\n <ion-col size=\\\"6\\\">\\n <div color=\\\"danger\\\" class=\\\"okButtonWide {{ greyMeOut }}\\\" (click)=\\\"saveMinutes('+60m')\\\">\\n More than 1 hour\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </div>\\n </div>\\n <!-- END OF CONSCIOUSNESS MODAL POPUP -->\\n\\n <!-- ABOUT AIBER MODAL POPUP -->\\n <div class=\\\"overlay {{ aboutVis }}\\\" (click)=\\\"closeAboutInfo()\\\"></div>\\n <div class=\\\"modal_content aboutZ aboutModal {{ aboutVis }}\\\">\\n <h1>Aiber Information</h1>\\n <img src=\\\"assets/imgs/close.png\\\" class=\\\"closeButton\\\" (click)=\\\"closeAboutInfo()\\\" />\\n <div class=\\\"aboutHolder\\\">\\n <div class=\\\"aboutInfo\\\">\\n <ion-grid class=\\\"aboutInfo\\\">\\n <ion-row>\\n <ion-col size=\\\"4\\\">\\n <img src=\\\"assets/imgs/ce-mark.png\\\" class=\\\"ceMark\\\">\\n </ion-col>\\n <ion-col size=\\\"8\\\">\\n <ion-row>\\n <ion-col size=\\\"5\\\" class=\\\"aboutLeft\\\"><strong>UDI-DI:</strong></ion-col>\\n <ion-col class=\\\"aboutLeft\\\">5060853230004V1</ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col size=\\\"5\\\" class=\\\"aboutLeft\\\"><strong>Manufacturer:</strong></ion-col>\\n <ion-col class=\\\"aboutLeft\\\">MIME<sup>®</sup> Technologies Ltd</ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col size=\\\"5\\\" class=\\\"aboutLeft\\\"><strong>Address:</strong></ion-col>\\n <ion-col class=\\\"aboutLeft\\\">Solasta House, 8 Inverness Campus, Inverness IV2 5NA</ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col size=\\\"5\\\" class=\\\"aboutLeft\\\"><strong>Email:</strong></ion-col>\\n <ion-col class=\\\"aboutLeft\\\">info@mimetechnologies.com</ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col size=\\\"5\\\" class=\\\"aboutLeft\\\"><strong>UDI-PI:</strong></ion-col>\\n <ion-col class=\\\"aboutLeft\\\">Aiber v{{aiberVersion}}</ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col size=\\\"5\\\" class=\\\"aboutLeft\\\"><strong>Indication:</strong></ion-col>\\n <ion-col class=\\\"aboutLeft\\\">Aiber is a medical device</ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col size=\\\"5\\\" class=\\\"aboutLeft\\\"><strong>Intended use:</strong></ion-col>\\n <ion-col class=\\\"aboutLeft\\\">Limited Distribution</ion-col>\\n </ion-row>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </div>\\n <ion-button ion-button color=\\\"primary\\\" class=\\\"wideButtonAbout\\\" (click)=\\\"closeAboutInfo()\\\">\\n OK\\n </ion-button>\\n </div>\\n </div>\\n <!-- END OF ABOUT AIBER MODAL POPUP -->\\n\\n <div class=\\\"leftPattern\\\"></div>\\n <div class=\\\"aiber-inner-content\\\">\\n <ion-grid>\\n <ion-row class=\\\"ccsSize\\\">\\n <ion-col size=\\\"12\\\">\\n <div class=\\\"checkPatientStatusBar\\\">\\n <strong> CHECK</strong> {{personLabelUpper}} STATUS\\n </div>\\n </ion-col>\\n </ion-row>\\n <ion-row class=\\\"avpuSpacer\\\">\\n <ion-col> </ion-col>\\n </ion-row>\\n <ion-row>\\n <ion-col class=\\\"noLeftPadding noTopPadding\\\">\\n <div class=\\\"colInner\\\">\\n <strong>AVPU</strong>\\n </div>\\n </ion-col>\\n <ion-col class=\\\"noLeftPadding noTopPadding\\\">\\n <div class=\\\"colInner\\\">\\n <strong>AIRWAY</strong>\\n </div>\\n </ion-col>\\n <ion-col class=\\\"noLeftPadding noTopPadding\\\">\\n <div class=\\\"colInner\\\">\\n <strong>BREATHING</strong>\\n </div>\\n </ion-col>\\n <ion-col class=\\\"noColPadding noTopPadding\\\">\\n <div class=\\\"colInner\\\">\\n <strong>CIRCULATION</strong>\\n </div>\\n </ion-col>\\n </ion-row>\\n <ion-row class=\\\"avpuABCHeight\\\">\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\">\\n <ion-slides [options]=\\\"avpuSlidesOpts\\\" #avpuSlides (ionSlideDidChange)=\\\"setAVPU()\\\">\\n <ion-slide>\\n <div class=\\\"cpsButtonsAVPU\\\">\\n <div class=\\\"swipeUpLeft\\\">\\n <img src=\\\"assets/imgs/swipeup.png\\\" />\\n </div>\\n <div class=\\\"avatar avpuA\\\">\\n <div class=\\\"avpuText avpuTextSingleLine\\\">\\n <strong>ALERT</strong>\\n </div>\\n <img src=\\\"assets/imgs/AVPU-A.png\\\" class=\\\"avatarImage\\\" />\\n </div>\\n <div class=\\\"swipeUpRight\\\">\\n <img src=\\\"assets/imgs/swipeup.png\\\" />\\n </div>\\n </div>\\n </ion-slide>\\n <ion-slide>\\n <div class=\\\"cpsButtonsAVPU\\\">\\n <div class=\\\"swipeUpLeft hideModal\\\">\\n <img src=\\\"assets/imgs/swipeupdown.png\\\" />\\n </div>\\n <div class=\\\"avatar avpuV\\\">\\n <div class=\\\"avpuText\\\">\\n <strong>RESPONDS TO<br />VOICE</strong>\\n </div>\\n <img src=\\\"assets/imgs/AVPU-V.png\\\" class=\\\"avatarImage\\\" />\\n </div>\\n <div class=\\\"swipeUpRight\\\">\\n <img src=\\\"assets/imgs/swipeupdown.png\\\" />\\n </div>\\n </div>\\n </ion-slide>\\n <ion-slide>\\n <div class=\\\"cpsButtonsAVPU\\\">\\n <div class=\\\"swipeUpLeft\\\">\\n <img src=\\\"assets/imgs/swipeupdown.png\\\" />\\n </div>\\n <div class=\\\"avatar avpuP\\\">\\n <div class=\\\"avpuText\\\">\\n <strong>RESPONDS TO<br />PAIN</strong>\\n </div>\\n <img src=\\\"assets/imgs/AVPU-P.png\\\" class=\\\"avatarImage\\\" />\\n </div>\\n <div class=\\\"swipeUpRight\\\">\\n <img src=\\\"assets/imgs/swipeupdown.png\\\" />\\n </div>\\n </div>\\n </ion-slide>\\n <ion-slide>\\n <div class=\\\"cpsButtonsAVPU\\\">\\n <div class=\\\"swipeUpLeft\\\">\\n <img src=\\\"assets/imgs/swipedown.png\\\" />\\n </div>\\n <div class=\\\"avatar avpuU\\\">\\n <div class=\\\"avpuText avpuTextSingleLine\\\">\\n <strong>UNRESPONSIVE</strong>\\n </div>\\n <img src=\\\"assets/imgs/AVPU-U.png\\\" class=\\\"avatarImage\\\" />\\n </div>\\n <div class=\\\"swipeUpRight\\\">\\n <img src=\\\"assets/imgs/swipedown.png\\\" />\\n </div>\\n </div>\\n </ion-slide>\\n </ion-slides>\\n </ion-col>\\n <ion-col class=\\\"noLeftPadding\\\">\\n <div class=\\\"cpsButtons cpsTop selGreen {{ confirm2TopState }} textOnly\\\" (click)=\\\"setAirway('clear')\\\">\\n <strong>CLEAR</strong>\\n </div>\\n <div class=\\\"cpsButtons cpsBottom selRed {{\\n confirm2BottomState\\n }} textOnly\\\" (click)=\\\"setAirway('blocked')\\\">\\n <strong>BLOCKED</strong>\\n </div>\\n </ion-col>\\n <ion-col class=\\\"noLeftPadding\\\">\\n <div class=\\\"cpsButtons cpsTop selGreen {{ confirm3TopState }} textOnly\\\" (click)=\\\"setBreathing('regular')\\\">\\n <strong>REGULAR</strong>\\n </div>\\n <div class=\\\"cpsButtons cpsBottom selRed {{\\n confirm3BottomState\\n }} textOnly\\\" (click)=\\\"setBreathing('irregular')\\\">\\n <strong>IRREGULAR</strong>\\n </div>\\n </ion-col>\\n <ion-col class=\\\"noColPadding\\\">\\n <div class=\\\"cpsButtons cpsTop cpsLastCol selGreen {{\\n confirm4TopState\\n }} textOnly\\\" (click)=\\\"setCirculation('pale')\\\">\\n <strong>PALE</strong>\\n </div>\\n <div class=\\\"cpsButtons cpsBottom cpsLastCol selRed {{\\n confirm4BottomState\\n }} textOnly\\\" (click)=\\\"setCirculation('flushed')\\\">\\n <strong>FLUSHED</strong>\\n </div>\\n </ion-col>\\n </ion-row>\\n <ion-row class=\\\"avpuSpacer\\\">\\n <ion-col> </ion-col>\\n </ion-row>\\n <ion-row class=\\\"awakeHeight\\\">\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" (click)=\\\"confirmAVPU()\\\">\\n <div class=\\\"cpsConfirmed cpsButton1Start\\\">\\n <div class=\\\"{{confirmBtn1}}\\\">CONFIRM?</div>\\n <div class=\\\"{{confirmedBtn1}}\\\">CONFIRMED</div>\\n <img src=\\\"assets/imgs/proceedTick.png\\\" class=\\\"proceedTick {{ confirm1Tick }}\\\" />\\n </div>\\n </ion-col>\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" (click)=\\\"confirmAirway()\\\">\\n <div class=\\\"cpsConfirmed {{ confirm2 }}\\\">\\n <div class=\\\"{{confirmBtn2}}\\\">CONFIRM?</div>\\n <div class=\\\"{{confirmedBtn2}}\\\">CONFIRMED</div>\\n <img src=\\\"assets/imgs/proceedTick.png\\\" class=\\\"proceedTick {{ confirm2Tick }}\\\" />\\n </div>\\n </ion-col>\\n <ion-col class=\\\"noLeftPadding noRowPadding\\\" (click)=\\\"confirmBreathing()\\\">\\n <div class=\\\"cpsConfirmed {{ confirm3 }}\\\">\\n <div class=\\\"{{confirmBtn3}}\\\">CONFIRM?</div>\\n <div class=\\\"{{confirmedBtn3}}\\\">CONFIRMED</div>\\n <img src=\\\"assets/imgs/proceedTick.png\\\" class=\\\"proceedTick {{ confirm3Tick }}\\\" />\\n </div>\\n </ion-col>\\n <ion-col class=\\\"noColPadding noRowPadding\\\" (click)=\\\"confirmCirculation()\\\">\\n <div class=\\\"cpsConfirmed {{ confirm4 }}\\\">\\n <div class=\\\"{{confirmBtn4}}\\\">CONFIRM?</div>\\n <div class=\\\"{{confirmedBtn4}}\\\">CONFIRMED</div>\\n <img src=\\\"assets/imgs/proceedTick.png\\\" class=\\\"proceedTick lastButton {{ confirm4Tick }}\\\" />\\n </div>\\n </ion-col>\\n </ion-row>\\n <ion-row class=\\\"avpuSpacer\\\">\\n <ion-col> </ion-col>\\n </ion-row>\\n <ion-row class=\\\"awakeHeight\\\">\\n <ion-col size=\\\"9\\\" class=\\\"noColPadding noRowPadding\\\">\\n <div class=\\\"abcAwake {{ confirmConsciousness }}\\\">\\n Has the {{personLabelUpper}} been <strong>unconscious</strong>?\\n <div class=\\\"buttonConsciousness {{ confirmConsciousness }} {{\\n consciousnessStateColour\\n }}\\\" (click)=\\\"selectConsciousness()\\\" [innerHtml]=\\\"consciousnessConfirmState\\\"></div>\\n </div>\\n </ion-col>\\n <ion-col size=\\\"3\\\" class=\\\"noRightPadding noRowPadding\\\">\\n <div class=\\\"abcProceed {{ confirmFinal }}\\\" (click)=\\\"openMain()\\\">\\n <strong>PROCEED</strong>\\n <img src=\\\"assets/imgs/proceedTick.png\\\" class=\\\"proceedTick {{ confirmFinalTick }}\\\" />\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </div>\\n <div class=\\\"rightPattern\\\"></div>\\n <div class=\\\"aiber-ion-footer\\\">\\n <img src=\\\"assets/imgs/bottom-wedge.png\\\" class=\\\"bottomWedge\\\" />\\n </div>\\n</ion-content>\";","import { NgModule } from \"@angular/core\";\nimport { PreloadAllModules, RouterModule, Routes } from \"@angular/router\";\nimport { HomePage } from \"./home/home.page\";\n\nconst routes: Routes = [\n { path: \"\", redirectTo: \"home\", pathMatch: \"full\" },\n //{ path: \"home\", loadChildren: \"./home/home.module#HomePageModule\" },\n { path: \"home\", component: HomePage },\n {\n path:\n \"main/:avpuState/:airwayState/:breathingState/:circulationState/:consciousnessState\",\n loadChildren: \"./main/main.module#MainPageModule\",\n },\n {\n path: \"main\",\n loadChildren: \"./main/main.module#MainPageModule\",\n },\n];\n\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }),\n ],\n exports: [RouterModule],\n})\nexport class AppRoutingModule { }\n","export default \"@font-face {\\n font-family: \\\"oswaldregular\\\";\\n src: url('oswald-regular-webfont.woff2') format(\\\"woff2\\\"), url('oswald-regular-webfont.woff') format(\\\"woff\\\");\\n font-weight: normal;\\n font-style: normal;\\n}\\n@font-face {\\n font-family: \\\"tondoregular\\\";\\n src: url('tondo_std-webfont.woff2') format(\\\"woff2\\\"), url('tondo_std-webfont.woff') format(\\\"woff\\\");\\n font-weight: normal;\\n font-style: normal;\\n}\\n@font-face {\\n font-family: \\\"tondobold\\\";\\n src: url('tondo_std_bold-webfont.woff') format(\\\"woff2\\\"), url('tondo_std_bold-webfont.woff2') format(\\\"woff\\\");\\n font-weight: bold;\\n font-style: bold;\\n}\\n@font-face {\\n font-family: \\\"barlow\\\";\\n src: url('BarlowCondensed-Regular-webfont.woff') format(\\\"woff\\\");\\n font-weight: normal;\\n font-style: normal;\\n}\\n@font-face {\\n font-family: \\\"barlowCondensed\\\";\\n src: url('BarlowCondensed-SemiBold.otf') format(\\\"woff\\\");\\n font-weight: normal;\\n font-style: normal;\\n}\\n@font-face {\\n font-family: \\\"bebas\\\";\\n src: url('Bebas-Neue-Pro-Regular.otf') format(\\\"woff\\\");\\n font-weight: normal;\\n font-style: normal;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsNEJBQUE7RUFDQSwyR0FBQTtFQUVBLG1CQUFBO0VBQ0Esa0JBQUE7QUFBRjtBQUdBO0VBQ0UsMkJBQUE7RUFDQSxpR0FBQTtFQUVBLG1CQUFBO0VBQ0Esa0JBQUE7QUFGRjtBQUtBO0VBQ0Usd0JBQUE7RUFDQSwyR0FBQTtFQUVBLGlCQUFBO0VBQ0EsZ0JBQUE7QUFKRjtBQU9BO0VBQ0UscUJBQUE7RUFDQSwrREFBQTtFQUVBLG1CQUFBO0VBQ0Esa0JBQUE7QUFORjtBQVNBO0VBQ0UsOEJBQUE7RUFDQSx1REFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUFQRjtBQVVBO0VBQ0Usb0JBQUE7RUFDQSxxREFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUFSRiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJvc3dhbGRyZWd1bGFyXCI7XG4gIHNyYzogdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL29zd2FsZC1yZWd1bGFyLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gICAgdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL29zd2FsZC1yZWd1bGFyLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJ0b25kb3JlZ3VsYXJcIjtcbiAgc3JjOiB1cmwoXCIuLi9hc3NldHMvZm9udHMvdG9uZG9fc3RkLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gICAgdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL3RvbmRvX3N0ZC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwidG9uZG9ib2xkXCI7XG4gIHNyYzogdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL3RvbmRvX3N0ZF9ib2xkLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB1cmwoXCIuLi9hc3NldHMvZm9udHMvdG9uZG9fc3RkX2JvbGQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogYm9sZDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImJhcmxvd1wiO1xuICBzcmM6IHVybChcIi4uL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtUmVndWxhci13ZWJmb250LndvZmZcIilcbiAgICBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJiYXJsb3dDb25kZW5zZWRcIjtcbiAgc3JjOiB1cmwoXCIuLi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLVNlbWlCb2xkLm90ZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBzcmM6IHVybChcIi4uL2Fzc2V0cy9mb250cy9CZWJhcy1OZXVlLVByby1SZWd1bGFyLm90ZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4iXX0= */\";","import { Component } from '@angular/core';\n\nimport { Platform } from '@ionic/angular';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss']\n})\nexport class AppComponent {\n constructor(\n private platform: Platform,\n private splashScreen: SplashScreen,\n private statusBar: StatusBar\n ) {\n this.initializeApp();\n }\n\n initializeApp() {\n this.platform.ready().then(() => {\n this.statusBar.styleDefault();\n this.splashScreen.hide();\n });\n }\n}\n","/**\n * v1.0.0 - 22/09/2020 - FIRST RELEASE\n * v1.0.1 - 30/09/2020 - Patched after first test cycle\n * v1.0.2 - 06/11/2020 - Patched after User Validation\n */\n\nimport { AppComponent } from \"./app.component\";\nimport { AppLauncher } from \"@ionic-native/app-launcher/ngx\";\nimport { AppRoutingModule } from \"./app-routing.module\";\nimport { AppVersion } from \"@ionic-native/app-version/ngx\";\nimport { BatteryStatus } from \"@ionic-native/battery-status/ngx\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { DatabaseService } from \"./services/database/database.service\";\nimport { Device } from \"@ionic-native/device/ngx\";\nimport { File } from \"@ionic-native/file/ngx\";\nimport { Geolocation } from \"@ionic-native/geolocation/ngx\";\nimport { GetlocationService } from \"./services/getlocation/getlocation.service\";\nimport { HomePage } from \"./home/home.page\";\nimport { HTTP } from \"@ionic-native/http/ngx\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { IonicModule, IonicRouteStrategy } from \"@ionic/angular\";\nimport { IonicStorageModule } from \"@ionic/storage\";\nimport { Keyboard } from \"@ionic-native/keyboard/ngx\";\nimport { Network } from \"@ionic-native/network/ngx\";\nimport { NgModule } from \"@angular/core\";\nimport { RouteReuseStrategy } from \"@angular/router\";\nimport { ScreenOrientation } from \"@ionic-native/screen-orientation/ngx\";\nimport { SplashScreen } from \"@ionic-native/splash-screen/ngx\";\nimport { SQLite } from \"@ionic-native/sqlite/ngx\";\nimport { SQLitePorter } from \"@ionic-native/sqlite-porter/ngx\";\nimport { StatusBar } from \"@ionic-native/status-bar/ngx\";\n\n@NgModule({\n declarations: [AppComponent, HomePage],\n entryComponents: [HomePage],\n imports: [\n BrowserModule,\n IonicModule.forRoot({\n scrollPadding: false,\n scrollAssist: false\n }),\n IonicStorageModule.forRoot(),\n //HttpModule,\n AppRoutingModule,\n HttpClientModule,\n ],\n providers: [\n AppVersion,\n AppLauncher,\n Geolocation,\n GetlocationService,\n DatabaseService,\n HTTP,\n Network,\n SQLite,\n SQLitePorter,\n Device,\n ScreenOrientation,\n StatusBar,\n SplashScreen,\n BatteryStatus,\n File,\n Keyboard,\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule { }\n","export default \".ceMark {\\n padding-top: 45px;\\n}\\n\\n.aboutAiber {\\n position: absolute;\\n right: 127px;\\n top: 20px;\\n height: 56px;\\n}\\n\\n.aboutZ {\\n z-index: 10000 !important;\\n}\\n\\n.stopScroll {\\n --overflow: hidden !important;\\n}\\n\\n.aboutModal {\\n top: 24% !important;\\n width: 70% !important;\\n height: 52% !important;\\n text-align: center;\\n font-family: \\\"arial\\\" !important;\\n font-size: 18px;\\n}\\n\\n.aboutModal h1 {\\n font-family: \\\"bebas\\\" !important;\\n}\\n\\n.aboutHolder {\\n margin: 20px auto 0 auto !important;\\n width: 100%;\\n}\\n\\n.aboutInfo {\\n width: 100%;\\n text-align: left !important;\\n}\\n\\n.aboutLeft {\\n text-align: left !important;\\n}\\n\\n.stylePage {\\n border: 1px solid purple;\\n}\\n\\n.scroll-content {\\n padding: 0px !important;\\n margin: 0px !important;\\n}\\n\\nbody {\\n font-family: \\\"bebas\\\" !important;\\n color: #555656 !important;\\n}\\n\\n.aiber-ion-header {\\n position: absolute;\\n top: 0;\\n width: 100%;\\n height: 91px;\\n background-color: #555656 !important;\\n color: white;\\n}\\n\\nion-content {\\n position: absolute;\\n top: 0px;\\n height: 100%;\\n padding: 0 !important;\\n}\\n\\n.aiber-inner-content {\\n position: absolute;\\n top: 130px;\\n height: 612px;\\n width: 1015px;\\n left: 32px;\\n}\\n\\n.aiber-ion-footer {\\n position: absolute;\\n bottom: 0;\\n width: 100%;\\n height: 96px;\\n background-color: #555656 !important;\\n color: white;\\n}\\n\\nion-slides {\\n height: 270px !important;\\n}\\n\\nion-slide {\\n padding: 0 !important;\\n width: 100% !important;\\n}\\n\\n.headerHolder {\\n position: relative;\\n width: 100%;\\n padding: 18px 0 0 0;\\n text-align: center;\\n}\\n\\n.fasSlides {\\n height: 485px !important;\\n}\\n\\n.fasMenuItems {\\n text-align: left;\\n padding-top: 42px !important;\\n font-size: 26px !important;\\n}\\n\\n.fasModal h1 {\\n font-family: \\\"bebas\\\" !important;\\n}\\n\\n.fasMenuItemsBlank {\\n padding-top: 30px !important;\\n}\\n\\n.fasScreenImgs {\\n height: 240px !important;\\n}\\n\\n.smaller {\\n height: 200px !important;\\n}\\n\\n.nopadding {\\n padding-left: 8px !important;\\n}\\n\\n.innerSlide {\\n height: 485px !important;\\n width: 700px;\\n margin: 0 auto !important;\\n overflow-y: scroll;\\n}\\n\\n.innerSlide h1 {\\n font-size: 56px;\\n margin-top: 0 !important;\\n}\\n\\n.smallerH1 {\\n font-size: 26px !important;\\n text-align: justify !important;\\n margin-bottom: 20px !important;\\n line-height: 39px !important;\\n font-family: \\\"bebas\\\" !important;\\n width: 100%;\\n}\\n\\n.centreText {\\n text-align: center !important;\\n}\\n\\n.swipe {\\n padding: 0 !important;\\n margin: 0 !important;\\n position: absolute;\\n bottom: 20px;\\n left: 350px;\\n width: 100px !important;\\n height: 100px !important;\\n}\\n\\n.swipePositionedRight {\\n padding: 0 !important;\\n margin: 0 !important;\\n position: absolute;\\n bottom: 20px;\\n right: 50px;\\n width: 100px;\\n}\\n\\n.headerLogo {\\n height: 55px;\\n position: absolute;\\n left: 56px;\\n top: 20px;\\n}\\n\\n.topWedge {\\n position: absolute;\\n top: 0;\\n right: 0;\\n height: 90px;\\n}\\n\\n.footerHolder {\\n position: relative;\\n width: 100%;\\n}\\n\\n.bottomWedge {\\n position: absolute;\\n bottom: 0px;\\n left: 0px;\\n height: 100%;\\n}\\n\\n.leftPattern {\\n position: absolute;\\n height: 69.5%;\\n width: 3%;\\n top: 100px;\\n background-image: url('pattern.png');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position-x: center;\\n background-position-y: center;\\n}\\n\\n.showModal {\\n display: block;\\n}\\n\\n.hideModal {\\n display: none;\\n}\\n\\n.content {\\n background: transparent;\\n}\\n\\n.overlay {\\n position: fixed;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n opacity: 0.8;\\n background-color: #333;\\n}\\n\\n.modal_content {\\n position: absolute;\\n top: 12.5%;\\n left: 0;\\n right: 0;\\n width: 80%;\\n height: auto;\\n padding: 10px;\\n margin: 0 auto;\\n color: #333;\\n background: #e8e8e8;\\n background: linear-gradient(to bottom, #fff 0%, #e8e8e8 100%);\\n border-radius: 5px;\\n box-shadow: 0 2px 3px rgba(51, 51, 51, 0.35);\\n box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n -webkit-box-sizing: border-box;\\n overflow: hidden;\\n}\\n\\n.fasZ {\\n z-index: 50000 !important;\\n}\\n\\n.consciousnessZ {\\n z-index: 10000 !important;\\n}\\n\\n.fasModal {\\n text-align: center !important;\\n padding-top: 30px;\\n}\\n\\n.consciousnessModal {\\n top: 21% !important;\\n width: 50% !important;\\n height: 58% !important;\\n text-align: center !important;\\n padding-top: 0px;\\n}\\n\\n.consciousnessModal h1 {\\n font-family: \\\"bebas\\\" !important;\\n font-size: 32px;\\n}\\n\\n.consciousnessHolder {\\n margin: 20px auto 0 auto !important;\\n width: 362px;\\n height: 40px;\\n}\\n\\n.wideButton {\\n width: 160px !important;\\n font-family: \\\"bebas\\\" !important;\\n border-radius: 0 !important;\\n height: 53px;\\n font-size: 32px;\\n margin: 0 !important;\\n padding-top: 3px;\\n}\\n\\n.buttonLeft {\\n float: left;\\n}\\n\\n.buttonRight {\\n float: right;\\n}\\n\\n.wideTallButton {\\n width: 180px !important;\\n font-family: \\\"bebas\\\" !important;\\n border-radius: 0 !important;\\n height: 52px;\\n font-size: 20px;\\n left: 253px;\\n}\\n\\n.m30 {\\n margin-right: 30px;\\n}\\n\\n.howLong {\\n position: relative;\\n margin: 20px auto 0 auto;\\n text-align: left !important;\\n width: 420px;\\n height: 250px;\\n}\\n\\n.text-input {\\n margin: 4px 8px !important;\\n text-align: center !important;\\n}\\n\\n.howLongInput {\\n position: absolute !important;\\n font-size: 20px;\\n width: 100%;\\n height: 50px;\\n padding-top: 10px;\\n font-family: \\\"bebas\\\" !important;\\n text-align: center;\\n}\\n\\n.howLongInputOR {\\n font-size: 20px;\\n width: 100%;\\n height: 36px;\\n padding-top: 4px;\\n font-family: \\\"bebas\\\" !important;\\n text-align: center;\\n}\\n\\n.howLongInputBox {\\n position: absolute !important;\\n left: 260px;\\n width: 100px;\\n border: 1px solid black;\\n text-align: center !important;\\n font-size: 20px;\\n padding: 0 !important;\\n margin: 0;\\n height: 50px !important;\\n font-family: \\\"bebas\\\" !important;\\n}\\n\\n.howLongMinutes {\\n position: absolute !important;\\n top: 40px !important;\\n left: 9px;\\n}\\n\\n.howLongMinutes ion-col {\\n padding: 5px !important;\\n margin: 0 !important;\\n}\\n\\n.consciousnessEmpty {\\n background-color: white !important;\\n color: #555656 !important;\\n width: 160px !important;\\n font-family: \\\"bebas\\\" !important;\\n border-radius: 0 !important;\\n height: 56px;\\n font-size: 32px;\\n border: 1px solid #555656 !important;\\n}\\n\\n.okButton {\\n height: 50px;\\n font-family: \\\"bebas\\\" !important;\\n border-radius: 0 !important;\\n width: 50px;\\n background-color: #ed1c24;\\n color: white;\\n font-size: 28px;\\n padding-top: 6px;\\n}\\n\\n.okButtonWide {\\n height: 56px;\\n font-family: \\\"bebas\\\" !important;\\n border-radius: 0 !important;\\n width: 188px;\\n background-color: #ed1c24;\\n color: white;\\n font-size: 28px;\\n padding-top: 10px;\\n}\\n\\n.greyedOut {\\n color: white;\\n background-color: #555656 !important;\\n opacity: 0.5;\\n}\\n\\n.disableDiv {\\n pointer-events: none !important;\\n opacity: 0.5;\\n}\\n\\n.closeButton {\\n position: absolute;\\n top: 10px;\\n right: 20px;\\n height: 50px;\\n width: 50px;\\n}\\n\\n.avpuABCGrid {\\n position: absolute;\\n left: 3%;\\n width: 94%;\\n height: 73%;\\n top: 14px;\\n}\\n\\n.ccsSize {\\n height: 50px;\\n}\\n\\n.checkPatientStatusBar {\\n position: absolute;\\n left: 0;\\n top: 0%;\\n width: 100%;\\n height: 100%;\\n text-align: center;\\n font-family: \\\"bebas\\\";\\n font-size: 44px;\\n letter-spacing: 4px;\\n padding: 0px 0 0 0;\\n background-image: url('Check-Patient-Status-Gradient-BG.png');\\n background-size: 82px;\\n background-repeat: repeat-x;\\n color: #555656 !important;\\n}\\n\\n.echoButton {\\n position: absolute;\\n left: 56px;\\n top: 20px;\\n height: 52px;\\n font-weight: bold;\\n}\\n\\n.firstAidSymbol {\\n position: absolute;\\n left: 290px;\\n top: 32px;\\n height: 46px;\\n}\\n\\n.firstAidSymbolTop {\\n position: absolute;\\n right: 56px;\\n top: 20px;\\n height: 52px;\\n}\\n\\n.buttonGrid {\\n border: 1px solid red;\\n position: absolute;\\n top: 15%;\\n padding: 0 !important;\\n width: 100%;\\n}\\n\\nion-col {\\n text-align: center;\\n}\\n\\n.col {\\n padding: 0 8px 0 0;\\n}\\n\\n.buttonCol {\\n height: 10%;\\n}\\n\\n.noLeftPadding {\\n padding-left: 0 !important;\\n}\\n\\n.noColPadding {\\n padding-left: 0 !important;\\n padding-right: 0 !important;\\n}\\n\\n.noRightPadding {\\n padding-right: 0 !important;\\n}\\n\\n.noRowPadding {\\n padding-top: 0 !important;\\n padding-bottom: 0 !important;\\n}\\n\\n.noTopPadding {\\n padding-top: 0 !important;\\n}\\n\\n.cpsLastCol {\\n width: 100% !important;\\n}\\n\\n.colInner {\\n padding-top: 8px !important;\\n height: 64px;\\n background-image: url('ABC-buttons-gradient-BG.png');\\n background-size: 5px;\\n background-repeat: repeat-x;\\n color: #555656 !important;\\n font-family: \\\"bebas\\\";\\n font-size: 42px;\\n letter-spacing: 2px;\\n width: 100%;\\n}\\n\\n.avpuABCHeight {\\n height: 270px;\\n}\\n\\n.cpsButtonsAVPU {\\n padding: 20px;\\n height: 270px !important;\\n color: white !important;\\n font-family: \\\"bebas\\\";\\n font-size: 30px;\\n letter-spacing: 0px;\\n}\\n\\n.cpsButtons {\\n height: 133px;\\n color: white !important;\\n font-family: \\\"bebas\\\";\\n font-size: 24px;\\n letter-spacing: 2px;\\n}\\n\\n.cpsTop {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 98%;\\n}\\n\\n.cpsBottom {\\n position: absolute;\\n left: 0;\\n bottom: 0;\\n width: 98%;\\n}\\n\\n.cpsButton1Start {\\n background: linear-gradient(137deg, #00b4dc 0%, #1390cf 50%);\\n}\\n\\n.cpsConfirmed {\\n width: 100% !important;\\n color: white;\\n height: 64px;\\n text-align: left;\\n padding-top: 12px !important;\\n padding-left: 30px !important;\\n font-family: \\\"bebas\\\";\\n font-size: 32px;\\n letter-spacing: 2px;\\n font-weight: bold;\\n}\\n\\n.cpsConfirmedCol {\\n width: 100% !important;\\n background: #00b4dc;\\n background: linear-gradient(137deg, #00b4dc 0%, #1390cf 50%);\\n margin-right: 8px;\\n}\\n\\n.avatar {\\n position: absolute;\\n bottom: 0;\\n height: 100%;\\n width: 100%;\\n left: 0;\\n}\\n\\n.swipeUpLeft {\\n position: absolute;\\n top: 40%;\\n left: 4%;\\n width: 15%;\\n height: auto;\\n z-index: 1;\\n}\\n\\n.avatarImage {\\n height: 200px;\\n position: absolute;\\n bottom: 0;\\n left: 0px;\\n width: 100% !important;\\n}\\n\\n.avpuText {\\n position: absolute;\\n top: 5px;\\n left: 0 !important;\\n width: 100%;\\n text-align: center;\\n z-index: 20;\\n line-height: 30px;\\n}\\n\\n.avpuTextSingleLine {\\n padding-top: 16px;\\n}\\n\\n.swipeUpRight {\\n position: absolute;\\n top: 40%;\\n right: 7%;\\n width: 15%;\\n height: auto;\\n}\\n\\n.selGreen {\\n background-color: #00a350;\\n}\\n\\n.selRed {\\n background-color: #ec1d27;\\n}\\n\\n.selVoice {\\n background-color: #3972b7;\\n}\\n\\n.avpuA {\\n background-color: #00a651 !important;\\n}\\n\\n.avpuV {\\n background-color: #3972b7 !important;\\n}\\n\\n.avpuP {\\n background-color: #f4922c !important;\\n}\\n\\n.avpuU {\\n background-color: #ed1c24 !important;\\n}\\n\\n.textOnly {\\n padding-top: 38px;\\n font-size: 50px !important;\\n}\\n\\n.OK {\\n background-color: #00a350 !important;\\n}\\n\\n.NotOK {\\n background-color: #ec1d27 !important;\\n}\\n\\n.bgOK {\\n background-color: #00a350;\\n color: white;\\n}\\n\\n.bgWarn {\\n background-color: #fdc300;\\n}\\n\\n.bgNotOK {\\n background-color: #ec1d27;\\n color: white;\\n}\\n\\n.whiteText {\\n color: white !important;\\n}\\n\\n.consciousnessOK {\\n background-color: #00a350 !important;\\n color: white !important;\\n}\\n\\n.consciousnessNotOK {\\n background-color: #ec1d27 !important;\\n color: white !important;\\n}\\n\\n.deselect {\\n background-color: #555656 !important;\\n}\\n\\n.deselectTick {\\n display: none !important;\\n}\\n\\n.deselectConfirmed {\\n color: #666666 !important;\\n}\\n\\n.deselectConsciousness {\\n background-color: #555656 !important;\\n background-image: none !important;\\n}\\n\\n.proceedTickDeselect {\\n opacity: 0.3;\\n}\\n\\n.abcAwake {\\n width: 100% !important;\\n height: 64px;\\n text-align: left;\\n padding: 12px 0 8px 20px !important;\\n font-family: \\\"bebas\\\";\\n font-size: 30px;\\n letter-spacing: 1px;\\n background-image: url('ABC-how-many-minutes-gradient-BG.png');\\n background-size: 3px;\\n background-repeat: repeat-x;\\n color: #555656;\\n}\\n\\n.buttonConsciousness {\\n position: absolute;\\n right: 4px;\\n top: 4px;\\n padding: 8px 0;\\n width: 230px;\\n height: 56px;\\n text-align: center;\\n background-color: white;\\n color: #555656;\\n}\\n\\n.abcProceed {\\n /*background: rgb(0, 180, 220);\\n background: linear-gradient(\\n 137deg,\\n rgba(0, 180, 220, 1) 0%,\\n rgba(19, 144, 207, 1) 50%\\n );*/\\n color: white;\\n height: 64px;\\n text-align: left;\\n padding: 12px 0 0 30px !important;\\n font-family: \\\"bebas\\\";\\n font-size: 32px;\\n letter-spacing: 2px;\\n width: 100%;\\n}\\n\\n.avpuSpacer {\\n height: 5px !important;\\n}\\n\\n.awakeHeight {\\n height: 64px;\\n}\\n\\n.awakeColHolder {\\n padding: 0 3px 0 0 !important;\\n}\\n\\n.proceedColHolder {\\n padding: 0 0 0 6px !important;\\n}\\n\\n.proceedTick {\\n position: absolute;\\n top: 14px;\\n right: 15px;\\n height: 36px;\\n}\\n\\n.lastButton {\\n right: 8px !important;\\n}\\n\\n.rightPattern {\\n position: absolute;\\n height: 69.5%;\\n width: 3%;\\n top: 100px;\\n right: 0;\\n background-image: url('pattern.png');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position-x: center;\\n background-position-y: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaG9tZS9ob21lLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFBO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBQTtFQUVBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtBQUFGOztBQUdBO0VBQ0UseUJBQUE7QUFBRjs7QUFHQTtFQUNFLDZCQUFBO0FBQUY7O0FBR0E7RUFDRSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQUVBLCtCQUFBO0VBQ0EsZUFBQTtBQURGOztBQUlBO0VBQ0UsK0JBQUE7QUFERjs7QUFJQTtFQUVFLG1DQUFBO0VBQ0EsV0FBQTtBQUZGOztBQUtBO0VBQ0UsV0FBQTtFQUNBLDJCQUFBO0FBRkY7O0FBS0E7RUFDRSwyQkFBQTtBQUZGOztBQUtBO0VBQ0Usd0JBQUE7QUFGRjs7QUFLQTtFQUNFLHVCQUFBO0VBQ0Esc0JBQUE7QUFGRjs7QUFLQTtFQUNFLCtCQUFBO0VBQ0EseUJBQUE7QUFGRjs7QUFXQTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esb0NBQUE7RUFDQSxZQUFBO0FBUkY7O0FBb0JBO0VBQ0Usa0JBQUE7RUFDQSxRQUFBO0VBQ0EsWUFBQTtFQUVBLHFCQUFBO0FBbEJGOztBQXVCQTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGFBQUE7RUFDQSxhQUFBO0VBQ0EsVUFBQTtBQXBCRjs7QUE0QkE7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLG9DQUFBO0VBQ0EsWUFBQTtBQXpCRjs7QUE0QkE7RUFDRSx3QkFBQTtBQXpCRjs7QUE0QkE7RUFFRSxxQkFBQTtFQUNBLHNCQUFBO0FBMUJGOztBQTZCQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUExQkY7O0FBOEJBO0VBRUUsd0JBQUE7QUE1QkY7O0FBK0JBO0VBQ0UsZ0JBQUE7RUFFQSw0QkFBQTtFQUNBLDBCQUFBO0FBN0JGOztBQWdDQTtFQUNFLCtCQUFBO0FBN0JGOztBQWdDQTtFQUNFLDRCQUFBO0FBN0JGOztBQWdDQTtFQUNFLHdCQUFBO0FBN0JGOztBQWlDQTtFQUNFLHdCQUFBO0FBOUJGOztBQWlDQTtFQUVFLDRCQUFBO0FBL0JGOztBQWtDQTtFQUNFLHdCQUFBO0VBQ0EsWUFBQTtFQUVBLHlCQUFBO0VBQ0Esa0JBQUE7QUFoQ0Y7O0FBbUNBO0VBQ0UsZUFBQTtFQUNBLHdCQUFBO0FBaENGOztBQW1DQTtFQUNFLDBCQUFBO0VBQ0EsOEJBQUE7RUFDQSw4QkFBQTtFQUNBLDRCQUFBO0VBQ0EsK0JBQUE7RUFDQSxXQUFBO0FBaENGOztBQW9DQTtFQUNFLDZCQUFBO0FBakNGOztBQW9DQTtFQUNFLHFCQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsdUJBQUE7RUFDQSx3QkFBQTtBQWpDRjs7QUFxQ0E7RUFDRSxxQkFBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUFsQ0Y7O0FBc0NBO0VBQ0UsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7QUFuQ0Y7O0FBdUNBO0VBQ0Usa0JBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7QUFwQ0Y7O0FBdUNBO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0FBcENGOztBQXlDQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0FBdENGOztBQXlDQTtFQUNFLGtCQUFBO0VBRUEsYUFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0Esb0NBQUE7RUFDQSxxQkFBQTtFQUNBLDRCQUFBO0VBQ0EsNkJBQUE7RUFDQSw2QkFBQTtBQXZDRjs7QUEwQ0E7RUFDRSxjQUFBO0FBdkNGOztBQTBDQTtFQUNFLGFBQUE7QUF2Q0Y7O0FBMENBO0VBQ0UsdUJBQUE7QUF2Q0Y7O0FBZ0RBO0VBQ0UsZUFBQTtFQUNBLE1BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7QUE3Q0Y7O0FBZ0RBO0VBQ0Usa0JBQUE7RUFDQSxVQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBR0EsNkRBQUE7RUFDQSxrQkFBQTtFQUNBLDRDQUFBO0VBQ0Esc0JBQUE7RUFDQSwyQkFBQTtFQUNBLDhCQUFBO0VBQ0EsZ0JBQUE7QUE3Q0Y7O0FBZ0RBO0VBQ0UseUJBQUE7QUE3Q0Y7O0FBZ0RBO0VBQ0UseUJBQUE7QUE3Q0Y7O0FBZ0RBO0VBQ0UsNkJBQUE7RUFDQSxpQkFBQTtBQTdDRjs7QUFnREE7RUFDRSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSw2QkFBQTtFQUNBLGdCQUFBO0FBN0NGOztBQWdEQTtFQUNFLCtCQUFBO0VBQ0EsZUFBQTtBQTdDRjs7QUFnREE7RUFFRSxtQ0FBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0FBOUNGOztBQWlEQTtFQUNFLHVCQUFBO0VBQ0EsK0JBQUE7RUFDQSwyQkFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxnQkFBQTtBQTlDRjs7QUFpREE7RUFDRSxXQUFBO0FBOUNGOztBQWlEQTtFQUNFLFlBQUE7QUE5Q0Y7O0FBaURBO0VBQ0UsdUJBQUE7RUFDQSwrQkFBQTtFQUNBLDJCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0FBOUNGOztBQWlEQTtFQUNFLGtCQUFBO0FBOUNGOztBQWlEQTtFQUNFLGtCQUFBO0VBQ0Esd0JBQUE7RUFFQSwyQkFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0FBL0NGOztBQWtEQTtFQUNFLDBCQUFBO0VBQ0EsNkJBQUE7QUEvQ0Y7O0FBa0RBO0VBQ0UsNkJBQUE7RUFFQSxlQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLCtCQUFBO0VBQ0Esa0JBQUE7QUFoREY7O0FBbURBO0VBRUUsZUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrQkFBQTtFQUNBLGtCQUFBO0FBakRGOztBQW9EQTtFQUNFLDZCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSx1QkFBQTtFQUNBLDZCQUFBO0VBQ0EsZUFBQTtFQUNBLHFCQUFBO0VBQ0EsU0FBQTtFQUNBLHVCQUFBO0VBQ0EsK0JBQUE7QUFqREY7O0FBb0RBO0VBQ0UsNkJBQUE7RUFDQSxvQkFBQTtFQUNBLFNBQUE7QUFqREY7O0FBb0RBO0VBRUUsdUJBQUE7RUFDQSxvQkFBQTtBQWxERjs7QUFxREE7RUFDRSxrQ0FBQTtFQUNBLHlCQUFBO0VBQ0EsdUJBQUE7RUFDQSwrQkFBQTtFQUNBLDJCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxvQ0FBQTtBQWxERjs7QUFxREE7RUFLRSxZQUFBO0VBQ0EsK0JBQUE7RUFDQSwyQkFBQTtFQUNBLFdBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUF0REY7O0FBeURBO0VBS0UsWUFBQTtFQUNBLCtCQUFBO0VBQ0EsMkJBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0FBMURGOztBQTZEQTtFQUNFLFlBQUE7RUFDQSxvQ0FBQTtFQUNBLFlBQUE7QUExREY7O0FBNkRBO0VBQ0UsK0JBQUE7RUFDQSxZQUFBO0FBMURGOztBQTZEQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtBQTFERjs7QUE2REE7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFFQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7QUEzREY7O0FBK0RBO0VBR0UsWUFBQTtBQTlERjs7QUFpRUE7RUFDRSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFFQSxrQkFBQTtFQUNBLG9CQUFBO0VBRUEsZUFBQTtFQUNBLG1CQUFBO0VBR0Esa0JBQUE7RUFDQSw2REFBQTtFQUNBLHFCQUFBO0VBQ0EsMkJBQUE7RUFDQSx5QkFBQTtBQWxFRjs7QUFxRUE7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0FBbEVGOztBQXFFQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0FBbEVGOztBQXFFQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0FBbEVGOztBQXFFQTtFQUNFLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0VBQ0EscUJBQUE7RUFDQSxXQUFBO0FBbEVGOztBQXFFQTtFQUVFLGtCQUFBO0FBbkVGOztBQXVFQTtFQUNFLGtCQUFBO0FBcEVGOztBQXVFQTtFQUNFLFdBQUE7QUFwRUY7O0FBdUVBO0VBQ0UsMEJBQUE7QUFwRUY7O0FBdUVBO0VBQ0UsMEJBQUE7RUFDQSwyQkFBQTtBQXBFRjs7QUF1RUE7RUFDRSwyQkFBQTtBQXBFRjs7QUF1RUE7RUFDRSx5QkFBQTtFQUNBLDRCQUFBO0FBcEVGOztBQXVFQTtFQUNFLHlCQUFBO0FBcEVGOztBQXVFQTtFQUNFLHNCQUFBO0FBcEVGOztBQXVFQTtFQUNFLDJCQUFBO0VBRUEsWUFBQTtFQUNBLG9EQUFBO0VBQ0Esb0JBQUE7RUFDQSwyQkFBQTtFQUNBLHlCQUFBO0VBQ0Esb0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0FBckVGOztBQXdFQTtFQUVFLGFBQUE7QUF0RUY7O0FBMEVBO0VBQ0UsYUFBQTtFQUVBLHdCQUFBO0VBRUEsdUJBQUE7RUFDQSxvQkFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtBQXpFRjs7QUE0RUE7RUFHRSxhQUFBO0VBRUEsdUJBQUE7RUFDQSxvQkFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtBQTVFRjs7QUErRUE7RUFDRSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtBQTVFRjs7QUFnRkE7RUFDRSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBQTdFRjs7QUFnRkE7RUFFRSw0REFBQTtBQTlFRjs7QUFxRkE7RUFDRSxzQkFBQTtFQUVBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFFQSw0QkFBQTtFQUNBLDZCQUFBO0VBQ0Esb0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtBQXBGRjs7QUF1RkE7RUFDRSxzQkFBQTtFQUdBLG1CQUFBO0VBQ0EsNERBQUE7RUFLQSxpQkFBQTtBQTFGRjs7QUFpR0E7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFFQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7QUEvRkY7O0FBa0dBO0VBQ0Usa0JBQUE7RUFDQSxRQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBRUEsVUFBQTtBQWhHRjs7QUFtR0E7RUFDRSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0FBaEdGOztBQW9HQTtFQUNFLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLGtCQUFBO0VBRUEsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0FBbEdGOztBQXFHQTtFQUNFLGlCQUFBO0FBbEdGOztBQXFHQTtFQUNFLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtBQWxHRjs7QUFzR0E7RUFDRSx5QkFBQTtBQW5HRjs7QUFzR0E7RUFDRSx5QkFBQTtBQW5HRjs7QUFzR0E7RUFDRSx5QkFBQTtBQW5HRjs7QUFzR0E7RUFDRSxvQ0FBQTtBQW5HRjs7QUFzR0E7RUFDRSxvQ0FBQTtBQW5HRjs7QUFzR0E7RUFDRSxvQ0FBQTtBQW5HRjs7QUFzR0E7RUFDRSxvQ0FBQTtBQW5HRjs7QUEwR0E7RUFDRSxpQkFBQTtFQUNBLDBCQUFBO0FBdkdGOztBQTBHQTtFQUNFLG9DQUFBO0FBdkdGOztBQTBHQTtFQUNFLG9DQUFBO0FBdkdGOztBQTBHQTtFQUNFLHlCQUFBO0VBQ0EsWUFBQTtBQXZHRjs7QUEwR0E7RUFDRSx5QkFBQTtBQXZHRjs7QUEwR0E7RUFDRSx5QkFBQTtFQUNBLFlBQUE7QUF2R0Y7O0FBMEdBO0VBQ0UsdUJBQUE7QUF2R0Y7O0FBMEdBO0VBQ0Usb0NBQUE7RUFDQSx1QkFBQTtBQXZHRjs7QUEwR0E7RUFDRSxvQ0FBQTtFQUNBLHVCQUFBO0FBdkdGOztBQTBHQTtFQUNFLG9DQUFBO0FBdkdGOztBQTBHQTtFQUNFLHdCQUFBO0FBdkdGOztBQTBHQTtFQUVFLHlCQUFBO0FBeEdGOztBQTJHQTtFQUNFLG9DQUFBO0VBQ0EsaUNBQUE7QUF4R0Y7O0FBNEdBO0VBQ0UsWUFBQTtBQXpHRjs7QUE0R0E7RUFDRSxzQkFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLG1DQUFBO0VBQ0Esb0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSw2REFBQTtFQUNBLG9CQUFBO0VBQ0EsMkJBQUE7RUFDQSxjQUFBO0FBekdGOztBQTZHQTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7RUFFQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLHVCQUFBO0VBQ0EsY0FBQTtBQTNHRjs7QUE4R0E7RUFFRTs7Ozs7S0FBQTtFQU1BLFlBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQ0FBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBRUEsV0FBQTtBQTdHRjs7QUFnSEE7RUFDRSxzQkFBQTtBQTdHRjs7QUFpSEE7RUFDRSxZQUFBO0FBOUdGOztBQWtIQTtFQUNFLDZCQUFBO0FBL0dGOztBQWtIQTtFQUNFLDZCQUFBO0FBL0dGOztBQWtIQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FBL0dGOztBQW1IQTtFQUNFLHFCQUFBO0FBaEhGOztBQW1IQTtFQUNFLGtCQUFBO0VBRUEsYUFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQTtFQUVBLG9DQUFBO0VBQ0EscUJBQUE7RUFDQSw0QkFBQTtFQUNBLDZCQUFBO0VBQ0EsNkJBQUE7QUFsSEYiLCJmaWxlIjoic3JjL2FwcC9ob21lL2hvbWUucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNlTWFya3tcbiAgcGFkZGluZy10b3A6IDQ1cHg7XG59XG5cbi5hYm91dEFpYmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvL2xlZnQ6IDU2cHg7XG4gIHJpZ2h0OiAxMjdweDtcbiAgdG9wOiAyMHB4O1xuICBoZWlnaHQ6IDU2cHg7XG59XG5cbi5hYm91dFoge1xuICB6LWluZGV4OiAxMDAwMCAhaW1wb3J0YW50O1xufVxuXG4uc3RvcFNjcm9sbCB7XG4gIC0tb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4uYWJvdXRNb2RhbCB7XG4gIHRvcDogMjQlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA3MCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA1MiUgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvL3BhZGRpbmctdG9wOiAzMHB4O1xuICBmb250LWZhbWlseTogXCJhcmlhbFwiICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmFib3V0TW9kYWwgaDEge1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG59XG5cbi5hYm91dEhvbGRlciB7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBtYXJnaW46IDIwcHggYXV0byAwIGF1dG8gIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5hYm91dEluZm8ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4uYWJvdXRMZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4uc3R5bGVQYWdlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgcHVycGxlO1xufVxuXG4uc2Nyb2xsLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbn1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NTU2NTYgIWltcG9ydGFudDtcbn1cblxuLy8gaW9uLWhlYWRlciB7XG4vLyAgIG1pbi1oZWlnaHQ6IDExLjglO1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG4vLyAgIGNvbG9yOiB3aGl0ZTtcbi8vIH1cblxuLmFpYmVyLWlvbi1oZWFkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogOTFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi8vIGlvbi1jb250ZW50IHtcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICB0b3A6IDEwMHB4O1xuLy8gICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG4vLyAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbi8vICAgLy9tYXJnaW46IDAgIWltcG9ydGFudDtcbi8vICAgLy9oZWlnaHQ6IDYxMHB4ICFpbXBvcnRhbnQ7XG4vLyB9XG5cbmlvbi1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgLy9tYXJnaW46IDAgIWltcG9ydGFudDtcbiAgLy9oZWlnaHQ6IDYxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5haWJlci1pbm5lci1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEzMHB4O1xuICBoZWlnaHQ6IDYxMnB4O1xuICB3aWR0aDogMTAxNXB4O1xuICBsZWZ0OiAzMnB4O1xufVxuLy8gaW9uLWZvb3RlciB7XG4vLyAgIG1pbi1oZWlnaHQ6IDExLjglO1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG4vLyAgIGNvbG9yOiB3aGl0ZTtcbi8vIH1cblxuLmFpYmVyLWlvbi1mb290ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogOTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbmlvbi1zbGlkZXMge1xuICBoZWlnaHQ6IDI3MHB4ICFpbXBvcnRhbnQ7XG59XG5cbmlvbi1zbGlkZSB7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uaGVhZGVySG9sZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMThweCAwIDAgMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHllbGxvdztcbn1cblxuLmZhc1NsaWRlcyB7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBoZWlnaHQ6IDQ4NXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5mYXNNZW51SXRlbXMge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgcGFkZGluZy10b3A6IDQycHggIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAyNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5mYXNNb2RhbCBoMSB7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbn1cblxuLmZhc01lbnVJdGVtc0JsYW5rIHtcbiAgcGFkZGluZy10b3A6IDMwcHggIWltcG9ydGFudDtcbn1cblxuLmZhc1NjcmVlbkltZ3Mge1xuICBoZWlnaHQ6IDI0MHB4ICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xufVxuXG4uc21hbGxlciB7XG4gIGhlaWdodDogMjAwcHggIWltcG9ydGFudDtcbn1cblxuLm5vcGFkZGluZyB7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBwYWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xufVxuXG4uaW5uZXJTbGlkZSB7XG4gIGhlaWdodDogNDg1cHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDcwMHB4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4uaW5uZXJTbGlkZSBoMSB7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4uc21hbGxlckgxIHtcbiAgZm9udC1zaXplOiAyNnB4ICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMzlweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbn1cblxuLmNlbnRyZVRleHQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnN3aXBlIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDIwcHg7XG4gIGxlZnQ6IDM1MHB4O1xuICB3aWR0aDogMTAwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDBweCAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIGdyZWVuO1xufVxuXG4uc3dpcGVQb3NpdGlvbmVkUmlnaHQge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMjBweDtcbiAgcmlnaHQ6IDUwcHg7XG4gIHdpZHRoOiAxMDBweDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBncmVlbjtcbn1cblxuLmhlYWRlckxvZ28ge1xuICBoZWlnaHQ6IDU1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTZweDtcbiAgdG9wOiAyMHB4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xufVxuXG4udG9wV2VkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogOTBweDtcbn1cblxuLmZvb3RlckhvbGRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIC8vcGFkZGluZzogMTNweCAwIDAgMDtcbiAgLy90ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ib3R0b21XZWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubGVmdFBhdHRlcm4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBoZWlnaHQ6IDY5LjUlO1xuICB3aWR0aDogMyU7XG4gIHRvcDogMTAwcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pbWdzL3BhdHRlcm4ucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb24teDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcbn1cblxuLnNob3dNb2RhbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaGlkZU1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLy8gZGlzcGxheS1tdWx0aS1zaXplLWhhbmRsaW5nXG4vLyBUaGUgZm9sbG93aW5nIHNjaGVtZSBvZiBDU1MgaGFuZGxlc1xuLy8gYm90aCA5LjdcIiBhbmQgMTAuMlwiIGlQYWQgZGlzcGxheXNcbi8vIGNvcnJlbGF0aW5nIHRvIGJvdGggNnRoIGFuZCA3dGggZ2VuZXJhdGlvblxuLy8gaVBhZHMgcmVzcGVjdGl2ZWx5LlxuXG4ub3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiA5OTk5O1xuICBvcGFjaXR5OiAwLjg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG59XG5cbi5tb2RhbF9jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEyLjUlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQ6ICNlOGU4ZTg7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZiAwJSwgI2U4ZThlOCAxMDAlKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmIDAlLCAjZThlOGU4IDEwMCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZmIDAlLCAjZThlOGU4IDEwMCUpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDNweCByZ2JhKDUxLCA1MSwgNTEsIDAuMzUpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZhc1oge1xuICB6LWluZGV4OiA1MDAwMCAhaW1wb3J0YW50O1xufVxuXG4uY29uc2Npb3VzbmVzc1oge1xuICB6LWluZGV4OiAxMDAwMCAhaW1wb3J0YW50O1xufVxuXG4uZmFzTW9kYWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG59XG5cbi5jb25zY2lvdXNuZXNzTW9kYWwge1xuICB0b3A6IDIxJSAhaW1wb3J0YW50O1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNTglICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uY29uc2Npb3VzbmVzc01vZGFsIGgxIHtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDMycHg7XG59XG5cbi5jb25zY2lvdXNuZXNzSG9sZGVyIHtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIG1hcmdpbjogMjBweCBhdXRvIDAgYXV0byAhaW1wb3J0YW50O1xuICB3aWR0aDogMzYycHg7XG4gIGhlaWdodDogNDBweDtcbn1cblxuLndpZGVCdXR0b24ge1xuICB3aWR0aDogMTYwcHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNTNweDtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDNweDtcbn1cblxuLmJ1dHRvbkxlZnQge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLmJ1dHRvblJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ud2lkZVRhbGxCdXR0b24ge1xuICB3aWR0aDogMTgwcHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNTJweDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsZWZ0OiAyNTNweDtcbn1cblxuLm0zMCB7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbn1cblxuLmhvd0xvbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMjBweCBhdXRvIDAgYXV0bztcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgd2lkdGg6IDQyMHB4O1xuICBoZWlnaHQ6IDI1MHB4O1xufVxuXG4udGV4dC1pbnB1dCB7XG4gIG1hcmdpbjogNHB4IDhweCAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmhvd0xvbmdJbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIiAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ob3dMb25nSW5wdXRPUiB7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uaG93TG9uZ0lucHV0Qm94IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDI2MHB4O1xuICB3aWR0aDogMTAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiA1MHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCIgIWltcG9ydGFudDtcbn1cblxuLmhvd0xvbmdNaW51dGVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogNDBweCAhaW1wb3J0YW50O1xuICBsZWZ0OiA5cHg7XG59XG5cbi5ob3dMb25nTWludXRlcyBpb24tY29sIHtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDVweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLmNvbnNjaW91c25lc3NFbXB0eSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxNjBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBmb250LXNpemU6IDMycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1NTU2NTYgIWltcG9ydGFudDtcbn1cblxuLm9rQnV0dG9uIHtcbiAgLy9wb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vcmlnaHQ6IDA7XG4gIC8vdG9wOiAwO1xuICAvL21hcmdpbjogMDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDUwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFjMjQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBwYWRkaW5nLXRvcDogNnB4O1xufVxuXG4ub2tCdXR0b25XaWRlIHtcbiAgLy9wb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vcmlnaHQ6IDA7XG4gIC8vdG9wOiAwO1xuICAvL21hcmdpbjogMDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDE4OHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxYzI0O1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59XG5cbi5ncmV5ZWRPdXQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NTU2NTYgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uZGlzYWJsZURpdiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLmNsb3NlQnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAyMHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHdpZHRoOiA1MHB4O1xufVxuXG4uYXZwdUFCQ0dyaWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDMlO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgd2lkdGg6IDk0JTtcbiAgaGVpZ2h0OiA3MyU7XG4gIHRvcDogMTRweDtcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZWQgIWltcG9ydGFudDtcbn1cblxuLmNjc1NpemUge1xuICAvL2hlaWdodDogMTUlO1xuICAvL2hlaWdodDogMTAlO1xuICBoZWlnaHQ6IDUwcHg7XG59XG5cbi5jaGVja1BhdGllbnRTdGF0dXNCYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICAvL2ZvbnQtc2l6ZTogMjhweDsgQmFybG93IGFuZCBPc3dhbGQgaGVpZ2h0XG4gIGZvbnQtc2l6ZTogNDRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDRweDtcbiAgLy9wYWRkaW5nOiAyMnB4IDAgMCAwO1xuICAvL3BhZGRpbmc6IDdweCAwIDAgMDsgT3N3YWxkIHBhZGRpbmdcbiAgcGFkZGluZzogMHB4IDAgMCAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaW1ncy9DaGVjay1QYXRpZW50LVN0YXR1cy1HcmFkaWVudC1CRy5wbmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogODJweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBjb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xufVxuXG4uZWNob0J1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTZweDtcbiAgdG9wOiAyMHB4O1xuICBoZWlnaHQ6IDUycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZmlyc3RBaWRTeW1ib2wge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDI5MHB4O1xuICB0b3A6IDMycHg7XG4gIGhlaWdodDogNDZweDtcbn1cblxuLmZpcnN0QWlkU3ltYm9sVG9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNTZweDtcbiAgdG9wOiAyMHB4O1xuICBoZWlnaHQ6IDUycHg7XG59XG5cbi5idXR0b25HcmlkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTUlO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5pb24tY29sIHtcbiAgLy9tYXJnaW46IDAgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbn1cblxuLmNvbCB7XG4gIHBhZGRpbmc6IDAgOHB4IDAgMDtcbn1cblxuLmJ1dHRvbkNvbCB7XG4gIGhlaWdodDogMTAlO1xufVxuXG4ubm9MZWZ0UGFkZGluZyB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xufVxuXG4ubm9Db2xQYWRkaW5nIHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLm5vUmlnaHRQYWRkaW5nIHtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4ubm9Sb3dQYWRkaW5nIHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm5vVG9wUGFkZGluZyB7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5jcHNMYXN0Q29sIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmNvbElubmVyIHtcbiAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIGJsdWU7XG4gIGhlaWdodDogNjRweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ltZ3MvQUJDLWJ1dHRvbnMtZ3JhZGllbnQtQkcucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDVweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBjb2xvcjogIzU1NTY1NiAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDQycHg7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYXZwdUFCQ0hlaWdodCB7XG4gIC8vaGVpZ2h0OiAyMzBweDtcbiAgaGVpZ2h0OiAyNzBweDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhO1xufVxuXG4uY3BzQnV0dG9uc0FWUFUge1xuICBwYWRkaW5nOiAyMHB4O1xuICAvL2hlaWdodDogMjMwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNzBweCAhaW1wb3J0YW50O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIG1hZ2VudGE7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDMwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG59XG5cbi5jcHNCdXR0b25zIHtcbiAgLy9wYWRkaW5nOiAyMHB4O1xuICAvL2hlaWdodDogMTExcHg7XG4gIGhlaWdodDogMTMzcHg7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcImJlYmFzXCI7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbn1cblxuLmNwc1RvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogOTglO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbn1cblxuLmNwc0JvdHRvbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogOTglO1xufVxuXG4uY3BzQnV0dG9uMVN0YXJ0IHtcbiAgLy9iYWNrZ3JvdW5kOiByZ2IoMCwgMTgwLCAyMjApO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTM3ZGVnLFxuICAgIHJnYmEoMCwgMTgwLCAyMjAsIDEpIDAlLFxuICAgIHJnYmEoMTksIDE0NCwgMjA3LCAxKSA1MCVcbiAgKTtcbn1cblxuLmNwc0NvbmZpcm1lZCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIC8vYmFja2dyb3VuZC1jb2xvcjogIzRkNWVhYjtcbiAgY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDY0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIC8vcGFkZGluZzogMTJweCA4cHggMCAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMzBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJiZWJhc1wiO1xuICBmb250LXNpemU6IDMycHg7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uY3BzQ29uZmlybWVkQ29sIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE5LCAxNDQsIDIwNywgMSk7XG4gIC8vYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOSwgMTQ0LCAyMDcsIDEpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMCwgMTgwLCAyMjApO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTM3ZGVnLFxuICAgIHJnYmEoMCwgMTgwLCAyMjAsIDEpIDAlLFxuICAgIHJnYmEoMTksIDE0NCwgMjA3LCAxKSA1MCVcbiAgKTtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbi8vIEFWQVRBUiBTVFlMRVNcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblxuLmF2YXRhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICAvL2JvcmRlcjogMnB4IHNvbGlkIHllbGxvdztcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbn1cblxuLnN3aXBlVXBMZWZ0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDQwJTtcbiAgbGVmdDogNCU7XG4gIHdpZHRoOiAxNSU7XG4gIGhlaWdodDogYXV0bztcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5hdmF0YXJJbWFnZSB7XG4gIGhlaWdodDogMjAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xufVxuXG4uYXZwdVRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNXB4O1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgYmx1ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgei1pbmRleDogMjA7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuXG4uYXZwdVRleHRTaW5nbGVMaW5lIHtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG59XG5cbi5zd2lwZVVwUmlnaHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNDAlO1xuICByaWdodDogNyU7XG4gIHdpZHRoOiAxNSU7XG4gIGhlaWdodDogYXV0bztcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XG59XG5cbi5zZWxHcmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGEzNTA7XG59XG5cbi5zZWxSZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWMxZDI3O1xufVxuXG4uc2VsVm9pY2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzk3MmI3O1xufVxuXG4uYXZwdUEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhNjUxICFpbXBvcnRhbnQ7XG59XG5cbi5hdnB1ViB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOTcyYjcgIWltcG9ydGFudDtcbn1cblxuLmF2cHVQIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0OTIyYyAhaW1wb3J0YW50O1xufVxuXG4uYXZwdVUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxYzI0ICFpbXBvcnRhbnQ7XG59XG5cbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbi8vIEVORCBPRiBBVkFUQVIgU1RZTEVTXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbi50ZXh0T25seSB7XG4gIHBhZGRpbmctdG9wOiAzOHB4O1xuICBmb250LXNpemU6IDUwcHggIWltcG9ydGFudDtcbn1cblxuLk9LIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTM1MCAhaW1wb3J0YW50O1xufVxuXG4uTm90T0sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWMxZDI3ICFpbXBvcnRhbnQ7XG59XG5cbi5iZ09LIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTM1MDtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYmdXYXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkYzMwMDtcbn1cblxuLmJnTm90T0sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWMxZDI3O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi53aGl0ZVRleHQge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLmNvbnNjaW91c25lc3NPSyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGEzNTAgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5jb25zY2lvdXNuZXNzTm90T0sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWMxZDI3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4uZGVzZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NjU2ICFpbXBvcnRhbnQ7XG59XG5cbi5kZXNlbGVjdFRpY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kZXNlbGVjdENvbmZpcm1lZCB7XG4gIC8vY29sb3I6ICM4ODg4ODggIWltcG9ydGFudDtcbiAgY29sb3I6ICM2NjY2NjYgIWltcG9ydGFudDtcbn1cblxuLmRlc2VsZWN0Q29uc2Npb3VzbmVzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NTU2NTYgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICAvL2NvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4ucHJvY2VlZFRpY2tEZXNlbGVjdCB7XG4gIG9wYWNpdHk6IDAuMztcbn1cblxuLmFiY0F3YWtlIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA2NHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAxMnB4IDAgOHB4IDIwcHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIjtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaW1ncy9BQkMtaG93LW1hbnktbWludXRlcy1ncmFkaWVudC1CRy5wbmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogM3B4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGNvbG9yOiAjNTU1NjU2O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHllbGxvdztcbn1cblxuLmJ1dHRvbkNvbnNjaW91c25lc3Mge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA0cHg7XG4gIHRvcDogNHB4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgcGFkZGluZzogOHB4IDA7XG4gIHdpZHRoOiAyMzBweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogIzU1NTY1Njtcbn1cblxuLmFiY1Byb2NlZWQge1xuICAvL2JhY2tncm91bmQtY29sb3I6ICM0ZDVlYWI7XG4gIC8qYmFja2dyb3VuZDogcmdiKDAsIDE4MCwgMjIwKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDEzN2RlZyxcbiAgICByZ2JhKDAsIDE4MCwgMjIwLCAxKSAwJSxcbiAgICByZ2JhKDE5LCAxNDQsIDIwNywgMSkgNTAlXG4gICk7Ki9cbiAgY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDY0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDEycHggMCAwIDMwcHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiYmViYXNcIjtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5hdnB1U3BhY2VyIHtcbiAgaGVpZ2h0OiA1cHggIWltcG9ydGFudDtcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCBtYWdlbnRhO1xufVxuXG4uYXdha2VIZWlnaHQge1xuICBoZWlnaHQ6IDY0cHg7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xufVxuXG4uYXdha2VDb2xIb2xkZXIge1xuICBwYWRkaW5nOiAwIDNweCAwIDAgIWltcG9ydGFudDtcbn1cblxuLnByb2NlZWRDb2xIb2xkZXIge1xuICBwYWRkaW5nOiAwIDAgMCA2cHggIWltcG9ydGFudDtcbn1cblxuLnByb2NlZWRUaWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE0cHg7XG4gIHJpZ2h0OiAxNXB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgbWFnZW50YTtcbn1cblxuLmxhc3RCdXR0b24ge1xuICByaWdodDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5yaWdodFBhdHRlcm4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICBoZWlnaHQ6IDY5LjUlO1xuICB3aWR0aDogMyU7XG4gIHRvcDogMTAwcHg7XG4gIHJpZ2h0OiAwO1xuICAvL2JhY2tncm91bmQtY29sb3I6IHBpbms7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pbWdzL3BhdHRlcm4ucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb24teDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcbn1cbiJdfQ== */\";","/**\n * v1.0.0 - 22/09/2020 - FIRST RELEASE\n * v1.0.1 - 30/09/2020 - Patched after first test cycle\n * v1.0.2 - 06/11/2020 - Patched after User Validation\n */\n\nimport { AppGlobals } from \"../shared/app.global\";\nimport { AppVersion } from \"@ionic-native/app-version/ngx\";\nimport { BatteryStatus } from \"@ionic-native/battery-status/ngx\";\nimport { Component } from \"@angular/core\";\nimport { DatabaseService } from \"../services/database/database.service\";\nimport { GetlocationService } from \"../services/getlocation/getlocation.service\";\nimport { getTypeNameForDebugging } from \"@angular/common/esm2015/src/directives/ng_for_of\";\nimport { IonSlides } from \"@ionic/angular\";\nimport { MainPage } from \"../main/main.page\";\nimport { NavController, Platform } from \"@ionic/angular\";\nimport { Routes, RouterModule, Router } from \"@angular/router\";\nimport { ScreenOrientation } from \"@ionic-native/screen-orientation/ngx\";\nimport { ViewChild } from \"@angular/core\";\nimport { Device } from \"@ionic-native/device/ngx\";\n\n@Component({\n selector: \"app-home\",\n templateUrl: \"home.page.html\",\n styleUrls: [\"home.page.scss\"],\n providers: [AppGlobals],\n})\nexport class HomePage {\n @ViewChild(\"fasSlider\", { static: true })\n fasSlides: IonSlides;\n @ViewChild(\"avpuSlides\", { static: true })\n avpuSlides: IonSlides;\n subscription: any;\n theBattery: number;\n\n numTaps: number = 0;\n modalVis: string = \"hideModal\";\n consciousnessVis: string = \"hideModal\";\n consciousnessConfirmState: string = \"SELECT\";\n consciousnessStateColour: string = \"\";\n showInputBox: string = \"hideModal\";\n minutesUnconscious: number = 0;\n greyMeOut: string = \"\";\n\n avpuState: string = \"ALERT\";\n airwayState: string = \"\";\n breathingState: string = \"\";\n circulationState: string = \"\";\n consciousnessState: string = \"\";\n consciousnessSelectYes: string = \"consciousnessEmpty\";\n consciousnessSelectNo: string = \"consciousnessEmpty\";\n consciousnessSpacing: string = \"\";\n consciousnessMinutes: string = \"\";\n consciousnessClass: string = \"\";\n\n confirm1: string = \"\";\n //confirm1state: string = \"\";\n confirmBtn1: string = \"showModal\";\n confirmedBtn1: string = \"hideModal\";\n confirm2: string = \"deselect deselectConfirmed \";\n confirm2TopState: string = \"deselect deselectConfirmed \";\n confirm2BottomState: string = \"deselect deselectConfirmed \";\n confirmBtn2: string = \"showModal\";\n confirmedBtn2: string = \"hideModal\";\n confirm3: string = \"deselect deselectConfirmed \";\n confirm3TopState: string = \"deselect deselectConfirmed \";\n confirm3BottomState: string = \"deselect deselectConfirmed \";\n confirmBtn3: string = \"showModal\";\n confirmedBtn3: string = \"hideModal\";\n confirm4: string = \"deselect deselectConfirmed \";\n confirm4TopState: string = \"deselect deselectConfirmed \";\n confirm4BottomState: string = \"deselect deselectConfirmed \";\n confirmBtn4: string = \"showModal\";\n confirmedBtn4: string = \"hideModal\";\n confirmConsciousness: string = \"deselectConsciousness deselectConfirmed\";\n confirmFinal: string = \"deselect deselectConfirmed \";\n\n confirm1Tick: string = \"deselectTick \";\n confirm2Tick: string = \"deselectTick \";\n confirm3Tick: string = \"deselectTick \";\n confirm4Tick: string = \"deselectTick \";\n confirmFinalTick: string = \"deselectTick \";\n\n unresponsiveFlag: boolean = true;\n cdFlag: boolean = false;\n burnFlag: boolean = false;\n adultChokingFlag: boolean = false;\n\n theCoords;\n\n avpuSlidesOpts = {\n direction: \"vertical\",\n initialSlide: 0,\n height: 270,\n };\n\n personLabel: string;\n personLabelUpper: string;\n personLocation: string;\n supportLocation: string;\n personDestinationCentre: string;\n staffType: string;\n proceedable: boolean = true;\n aboutVis: string = \"hideModal\";\n aiberVersion = \"\";\n\n constructor(\n public navCtrl: NavController,\n private screenOrientation: ScreenOrientation,\n public database: DatabaseService,\n private appVersion: AppVersion,\n public batteryStatus: BatteryStatus,\n public getLocation: GetlocationService,\n private platform: Platform,\n private router: Router,\n private _global: AppGlobals,\n public device: Device\n ) {\n this.platform.ready().then(() => {\n //Force the iPad to display in LANDSCAPE only\n this.screenOrientation\n .lock(this.screenOrientation.ORIENTATIONS.LANDSCAPE)\n .then((data) => {\n //console.log(\"data from screenorientation is: \" + data);\n });\n\n this.personLabel = _global.appConfig.personLabel;\n this.personLabelUpper = _global.appConfig.personLabel.toUpperCase();\n this.supportLocation = _global.appConfig.supportLocation;\n this.staffType = _global.appConfig.staffType;\n this.findMe();\n this.appVersion.getVersionNumber().then((version) => {\n //alert(\"Aiber Version: \" + version);\n this.aiberVersion = version;\n });\n\n //Ensure device is running iOS12.4 and above\n if (this.device.version < \"12.4\") {\n alert(\n \"This software is designed to operate on iOS from version 12.4 onwards. Your system is currently \" +\n this.device.version +\n \". Please update your iOS version.\"\n );\n this.proceedable = false; //prevent app from continuing to function\n }\n });\n }\n\n setAVPU() {\n this.avpuSlides.getActiveIndex().then((currentIndex) => {\n //console.log(\"This is the currentIndex: \" + currentIndex);\n switch (currentIndex) {\n case 0:\n this.avpuState = \"ALERT\";\n break;\n\n case 1:\n this.avpuState = \"RESPONDS<br>TO VOICE\";\n break;\n\n case 2:\n this.avpuState = \"RESPONDS<br>TO PAIN\";\n break;\n\n case 3:\n this.avpuState = \"UNRESPONSIVE\";\n break;\n }\n });\n }\n\n //ngAfterViewInit() {\n ionViewDidEnter() {\n console.log(\"Getting to ionViewDidEnter\");\n this.appVersion.getVersionNumber().then((version) => {\n //alert(\"Aiber Version: \" + version);\n this.aiberVersion = version;\n });\n console.log(\"Back to home!\");\n this.subscription = this.batteryStatus.onChange().subscribe((status) => {\n //alert(\"Battery status: \" + status.level);\n this.theBattery = status.level;\n //this.database.updateBattery(this.theBattery);\n });\n this.modalVis = \"hideModal\";\n this.consciousnessVis = \"hideModal\";\n this.consciousnessConfirmState = \"SELECT\";\n this.consciousnessStateColour = \"\";\n this.showInputBox = \"hideModal\";\n this.minutesUnconscious = 0;\n this.consciousnessSelectYes = \"consciousnessEmpty\";\n this.consciousnessSelectNo = \"consciousnessEmpty\";\n\n this.avpuState = \"ALERT\";\n this.airwayState = \"\";\n this.breathingState = \"\";\n this.circulationState = \"\";\n this.consciousnessState = \"\";\n\n this.confirm1 = \"deselect deselectConfirmed \";\n //this.confirm1state = \"deselect deselectConfirmed \";\n this.confirm2 = \"deselect deselectConfirmed \";\n this.confirm2TopState = \"deselect deselectConfirmed \";\n this.confirm2BottomState = \"deselect deselectConfirmed \";\n this.confirm3 = \"deselect deselectConfirmed \";\n this.confirm3TopState = \"deselect deselectConfirmed \";\n this.confirm3BottomState = \"deselect deselectConfirmed \";\n this.confirm4 = \"deselect deselectConfirmed \";\n this.confirm4TopState = \"deselect deselectConfirmed \";\n this.confirm4BottomState = \"deselect deselectConfirmed \";\n this.confirmConsciousness = \"deselectConsciousness deselectConfirmed\";\n this.confirmFinal = \"deselect deselectConfirmed \";\n\n this.confirm1Tick = \"deselectTick \";\n this.confirm2Tick = \"deselectTick \";\n this.confirm3Tick = \"deselectTick \";\n this.confirm4Tick = \"deselectTick \";\n this.confirmBtn1 = \"showModal\";\n this.confirmedBtn1 = \"hideModal\";\n this.confirmBtn2 = \"showModal\";\n this.confirmedBtn2 = \"hideModal\";\n this.confirmBtn3 = \"showModal\";\n this.confirmedBtn3 = \"hideModal\";\n this.confirmBtn4 = \"showModal\";\n this.confirmedBtn4 = \"hideModal\";\n this.confirmFinalTick = \"deselectTick \";\n this.avpuSlides.slideTo(0, 0).then(() => {\n this.findMe();\n });\n }\n\n echoTest() {\n //console.log(\"Echo heard\");\n }\n\n // page-home-final-proceed\n // This section passes the AVPU screen contents\n // to the database and opens the MAIN screen.\n // This only happens if all AVPU inputs have been\n // completed, which will enable the final \"PROCEED\"\n // button.\n\n openMain() {\n if (\n this.confirmFinal === \"cpsConfirmedCol\" &&\n this.confirmFinalTick === \"\"\n ) {\n //Start session\n this.database.startSession(\n this.avpuState,\n this.airwayState,\n this.breathingState,\n this.circulationState,\n this.consciousnessState\n );\n //console.log(\"About to move screen\");\n this.router.navigate([\n \"main/\" +\n this.avpuState +\n \"/\" +\n this.airwayState +\n \"/\" +\n this.breathingState +\n \"/\" +\n this.circulationState +\n \"/\" +\n this.consciousnessState,\n ]);\n }\n }\n\n async findMe() {\n this.theCoords = await this.getLocation\n .getMyLocation()\n .then((data) => {\n ////console.warn(\"Location data: \" + JSON.stringify(data));\n })\n .catch((error) => {\n ////console.error(\"Location error: \" + error);\n });\n }\n\n updateTaps() {\n this.numTaps++;\n if (this.numTaps > 5) {\n this.appVersion.getVersionNumber().then((version) => {\n alert(\"MIME Pro Version: \" + version);\n });\n this.numTaps = 0;\n }\n }\n\n showAboutInfo() {\n console.log(\"Info icon clicked\");\n this.appVersion.getVersionNumber().then((version) => {\n this.aiberVersion = version;\n this.aboutVis = \"showModal\";\n });\n }\n\n closeAboutInfo() {\n this.aboutVis = \"hideModal\";\n }\n\n confirmAVPU() {\n //Show AVPU as confirmed, then enable Airway controls\n //debugger;\n this.confirm1 = \"\";\n this.confirm1Tick = \"\";\n this.confirmedBtn1 = \"showModal\";\n this.confirmBtn1 = \"hideModal\";\n //this.confirm2 = \"deselect deselectConfirmed\";\n if (\n this.confirm2TopState.indexOf(\"deselectConfirmed\") !== -1 ||\n this.confirm2BottomState.indexOf(\"deselectConfirmed\") !== -1\n ) {\n this.confirm2TopState = \"deselect \";\n this.confirm2BottomState = \"deselect \";\n }\n }\n\n setAirway(airwayState) {\n if (this.confirm1 === \"\" && this.confirm1Tick === \"\") {\n this.airwayState = airwayState;\n switch (airwayState) {\n case \"clear\":\n this.confirm2TopState = \"\";\n this.confirm2BottomState = \"deselect \";\n break;\n\n case \"blocked\":\n this.confirm2TopState = \"deselect \";\n this.confirm2BottomState = \"\";\n break;\n }\n\n this.confirm2 = \"cpsConfirmedCol\";\n if (this.confirm2Tick !== \"\") {\n this.confirm2Tick = \"deselectTick \";\n }\n }\n }\n\n confirmAirway() {\n //Show Airway as confirmed, then enable Breathing controls\n if (this.confirm2 === \"cpsConfirmedCol\") {\n this.confirm2Tick = \"\";\n this.confirmedBtn2 = \"showModal\";\n this.confirmBtn2 = \"hideModal\";\n if (\n this.confirm3TopState.indexOf(\"deselectConfirmed\") !== -1 ||\n this.confirm3BottomState.indexOf(\"deselectConfirmed\") !== -1\n ) {\n this.confirm3TopState = \"deselect \";\n this.confirm3BottomState = \"deselect \";\n }\n }\n }\n\n setBreathing(breathingState) {\n if (this.confirm2 === \"cpsConfirmedCol\" && this.confirm2Tick === \"\") {\n this.breathingState = breathingState;\n switch (breathingState) {\n case \"regular\":\n this.confirm3TopState = \"\";\n this.confirm3BottomState = \"deselect \";\n break;\n\n case \"irregular\":\n this.confirm3TopState = \"deselect \";\n this.confirm3BottomState = \"\";\n break;\n }\n\n this.confirm3 = \"cpsConfirmedCol\";\n if (this.confirm3Tick !== \"\") {\n this.confirm3Tick = \"deselectTick \";\n }\n }\n }\n\n confirmBreathing() {\n //Show Breathing as confirmed, then enable Circulation controls\n if (this.confirm3 === \"cpsConfirmedCol\") {\n this.confirm3Tick = \"\";\n this.confirmedBtn3 = \"showModal\";\n this.confirmBtn3 = \"hideModal\";\n if (\n this.confirm4TopState.indexOf(\"deselectConfirmed\") !== -1 ||\n this.confirm4BottomState.indexOf(\"deselectConfirmed\") !== -1\n ) {\n this.confirm4TopState = \"deselect \";\n this.confirm4BottomState = \"deselect \";\n }\n }\n }\n\n setCirculation(circulationState) {\n if (this.confirm3 === \"cpsConfirmedCol\" && this.confirm3Tick === \"\") {\n this.circulationState = circulationState;\n switch (circulationState) {\n case \"pale\":\n this.confirm4TopState = \"\";\n this.confirm4BottomState = \"deselect \";\n break;\n\n case \"flushed\":\n this.confirm4TopState = \"deselect \";\n this.confirm4BottomState = \"\";\n break;\n }\n\n this.confirm4 = \"cpsConfirmedCol\";\n if (this.confirm4Tick !== \"\") {\n this.confirm4Tick = \"deselectTick \";\n }\n }\n }\n\n confirmCirculation() {\n //Show Circulation as confirmed, then enable proceed controls\n if (this.confirm4 === \"cpsConfirmedCol\") {\n this.confirm4Tick = \"\";\n this.confirmedBtn4 = \"showModal\";\n this.confirmBtn4 = \"hideModal\";\n //this.confirmFinal = \"\";\n //this.confirmFinalTick = \"\";\n this.confirmConsciousness = \"\";\n }\n }\n confirmConscious() {\n //Show Circulation as confirmed, then enable proceed controls\n this.confirm4 = \"cpsConfirmedCol\";\n this.confirm4Tick = \"\";\n this.confirmConsciousness = \"\";\n }\n\n selectConsciousness() {\n ////console.log(this.consciousnessState);\n if (this.confirm4 === \"cpsConfirmedCol\" && this.confirm4Tick === \"\") {\n if (this.consciousnessState.indexOf(\"YES\") !== -1) {\n this.showInputBox = \"\";\n this.greyMeOut = \"\";\n } else if (\n this.consciousnessState === \"no\" ||\n this.consciousnessState === \"\"\n ) {\n this.showInputBox = \"disableDiv\";\n this.greyMeOut = \"greyedOut\";\n }\n this.consciousnessVis = \"showModal\";\n }\n }\n\n setConsciousness(consciousnessState) {\n switch (consciousnessState) {\n case \"yes\":\n this.showInputBox = \"\";\n this.greyMeOut = \"\";\n this.consciousnessState = consciousnessState;\n this.consciousnessSelectYes = \"bgNotOK\";\n this.consciousnessSelectNo = \"consciousnessEmpty\";\n break;\n\n case \"no\":\n this.consciousnessState = consciousnessState;\n this.showInputBox = \"disableDiv\";\n this.greyMeOut = \"greyedOut\";\n this.consciousnessConfirmState = \"NO\";\n this.consciousnessSelectYes = \"consciousnessEmpty\";\n this.consciousnessSelectNo = \"bgOK\";\n this.toggleConsciousness();\n this.confirmFinal = \"cpsConfirmedCol\";\n this.confirmFinalTick = \"\";\n this.confirmConsciousness = \"\";\n this.consciousnessStateColour = \"consciousnessOK\";\n break;\n }\n }\n\n saveMinutes(minutesUnconscious) {\n /*if (this.minutesUnconscious === 0) {\n alert(\"Must be more than zero minutes, otherwise select 'No'\");\n} else {*/\n //Figure out and strip off \"unit\" (minutes, seconds, etc.)\n let uncUnit = \"\";\n //alert(minutesUnconscious.indexOf(\"m\"));\n if (minutesUnconscious.indexOf(\"m\") !== -1) {\n //This is minutes\n uncUnit = \"mins\";\n minutesUnconscious = minutesUnconscious.slice(0, -1);\n } else {\n //This is seconds\n uncUnit = \"secs\";\n minutesUnconscious = minutesUnconscious.slice(0, -1);\n }\n\n this.showInputBox = \"hideModal\";\n if (minutesUnconscious.indexOf(\"+\") === -1) {\n this.consciousnessSpacing = \"\";\n this.consciousnessConfirmState =\n \"YES (under \" + minutesUnconscious + \" \" + uncUnit + \")\";\n } else {\n this.consciousnessSpacing = \"narrowerText\";\n var finalMinutes: string = \"\";\n switch (minutesUnconscious) {\n case \"+30\":\n finalMinutes = \"over 30mins\";\n break;\n\n case \"+60\":\n finalMinutes = \"over 1hr\";\n break;\n }\n this.consciousnessConfirmState = \"YES (\" + finalMinutes + \")\";\n }\n this.consciousnessMinutes = minutesUnconscious;\n this.consciousnessState = this.consciousnessConfirmState;\n this.consciousnessStateColour = \"consciousnessNotOK\";\n this.consciousnessClass = \"bgNotOK\";\n this.toggleConsciousness();\n this.confirmFinal = \"cpsConfirmedCol\";\n this.confirmFinalTick = \"\";\n this.confirmConsciousness = \"\";\n //}\n }\n\n toggleFAS() {\n if (this.modalVis === \"showModal\") {\n this.modalVis = \"hideModal\";\n } else {\n if (this.consciousnessVis === \"hideModal\") {\n this.modalVis = \"showModal\";\n }\n }\n this.fasSlides.update();\n this.fasSlides.slideTo(0);\n this.fasSlides.lockSwipes(true);\n this.fasSlides.update();\n }\n\n showUnresponsive() {\n this.cdFlag = false;\n this.burnFlag = false;\n this.adultChokingFlag = false;\n this.unresponsiveFlag = true;\n this.fasSlides.lockSwipes(false);\n this.fasSlides.slideNext();\n }\n\n showCDHolder() {\n this.cdFlag = true;\n this.adultChokingFlag = false;\n this.burnFlag = false;\n this.unresponsiveFlag = false;\n\n this.fasSlides.lockSwipes(false);\n this.fasSlides.slideNext();\n this.fasSlides.lockSwipeToNext(true);\n }\n\n showBurns() {\n this.cdFlag = false;\n this.adultChokingFlag = false;\n this.burnFlag = true;\n this.unresponsiveFlag = false;\n\n this.fasSlides.lockSwipes(false);\n this.fasSlides.slideNext();\n this.fasSlides.lockSwipeToNext(false);\n }\n\n showAdultChoking() {\n this.cdFlag = false;\n this.adultChokingFlag = true;\n this.burnFlag = false;\n this.unresponsiveFlag = false;\n\n this.fasSlides.lockSwipes(false);\n this.fasSlides.slideNext();\n this.fasSlides.lockSwipeToNext(false);\n }\n\n openUANB() {\n this.cdFlag = false;\n this.adultChokingFlag = false;\n this.burnFlag = false;\n this.unresponsiveFlag = true;\n this.fasSlides.slideTo(2);\n }\n\n fasLockSwipes() {\n this.fasSlides.isBeginning().then((data) => {\n //console.log(\"Data: \" + data);\n if (data) {\n setTimeout(() => {\n this.fasSlides.lockSwipes(true).then(() => {\n //blah\n });\n }, 500);\n }\n });\n }\n\n toggleConsciousness() {\n if (this.consciousnessVis === \"showModal\") {\n this.consciousnessVis = \"hideModal\";\n } else {\n this.consciousnessVis = \"showModal\";\n }\n }\n}\n","/**\n * v1.0.0 - 22/09/2020 - FIRST RELEASE\n * v1.0.1 - 30/09/2020 - Patched after first test cycle\n * v1.0.2 - 06/11/2020 - Patched after User Validation\n */\n\nimport \"rxjs/add/operator/do\";\nimport \"rxjs/add/operator/map\";\nimport { retry, catchError } from \"rxjs/operators\";\nimport { BehaviorSubject, Observable, throwError } from \"rxjs\";\nimport { Device } from \"@ionic-native/device/ngx\";\nimport { GetlocationService } from \"../getlocation/getlocation.service\";\nimport {\n HttpClient,\n HttpHeaders,\n HttpErrorResponse,\n} from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Network } from \"@ionic-native/network/ngx\";\nimport { Platform } from \"@ionic/angular\";\nimport { SQLite, SQLiteObject } from \"@ionic-native/sqlite/ngx\";\nimport { SQLitePorter } from \"@ionic-native/sqlite-porter/ngx\";\nimport { Storage } from \"@ionic/storage\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class DatabaseService {\n database: SQLiteObject;\n private dbReady: BehaviorSubject<boolean> = new BehaviorSubject(false);\n theSQL: any = \"\";\n //theSessionID: number;\n theSessionID: string = \"\";\n db: SQLiteObject;\n theCasComplaint: string = \"\";\n theBattery: number;\n gpsLat: string = \"57.697297\";\n gpsLong: string = \"-3.984215\";\n subscription: any;\n systemTime: String = new Date().toISOString().substring(11).replace(\"Z\", \"\");\n incidentTime;\n aiberChat: string = \"\";\n\n // API path\n host = \"https://newaiberapiv2.azurewebsites.net/\"; // LIVE host\n //host = \"http://192.168.1.157:45455/\"; // LOCAL host\n base_path = this.host + \"v2/api/incidentsv2/submit\";\n start_base_path = this.host + \"v2/api/incidentsv2/startincident\";\n chat_base_path = this.host + \"v2/api/incidentsv2/chat\";\n groundtyping_base_path = this.host + \"v2/api/incidentsv2/checktypingground\";\n groundchat_base_path = this.host + \"v2/api/incidentsv2/getgroundchat\";\n casualty_base_path = this.host + \"v2/api/incidentsv2/updatecasualty\";\n\n queue: any;\n startupQueue: any;\n netConn: boolean = false;\n sessionStartedOK: boolean = false;\n startAVPU: string = \"\";\n startA: string = \"\";\n startB: string = \"\";\n startC: string = \"\";\n startCon: string = \"\";\n startStreamed: number = 0;\n casualty = [\n {\n complaint: \"\",\n history: \"\",\n gender: \"\",\n dob: \"\",\n age: null,\n alcohol: \"\",\n allergies: \"\",\n allergydetails: \"\",\n medicinetaken: \"\",\n medhist: \"\",\n flight: \"\",\n seat: \"\",\n arrivalairport: \"\",\n lastmeal: \"\",\n detailsadded: \"\",\n detailssent: \"\",\n detailsack: \"\",\n },\n ];\n\n netStatusIcon: string = \"cloud-wait\";\n\n netWarningText: string =\n \"There is currently no network available; please continue using Aiber as normal. When a network is available, Aiber will automatically connect and process any unsent data.\";\n\n dataStreamed: string = \"\";\n\n constructor(\n private device: Device,\n public getmylocation: GetlocationService,\n public http: HttpClient,\n public network: Network,\n public platform: Platform,\n public sqlite: SQLite,\n public sqlitePorter: SQLitePorter,\n public storage: Storage\n ) {\n this.platform.ready().then(() => {\n //console.log(\"The platform is ready!\");\n this.sqlite\n .create({\n name: \"aiber.db\",\n location: \"default\",\n })\n .then((db: SQLiteObject) => {\n this.database = db;\n this.http\n .get(\"assets/aiber.sql\", { responseType: \"text\" })\n .subscribe((sql) => {\n this.sqlitePorter\n .importSqlToDb(this.database, sql)\n .then((_) => {\n console.log(\"Getting to 116 on database.service.ts\");\n this.clearDatabase();\n this.startStreamed = 0;\n this.dataStreamed = \"\";\n this.dbReady.next(true);\n })\n .catch((e) => console.error(e));\n });\n });\n });\n }\n\n /* Queue workings and premises:\n - On first entry to MAIN screen in Aiber, we subscribe to two events:\n * Network Connect - fires when the network is connected AFTER a disconnect (does not fire if there is a network connection on first subscription, only fires on CHANGE of this status). After this event fires, we will wait up to 3 seconds to let the system identify the network type. After this type is identified as Wifi, the queue will be started/restarted.\n * Network Disconnect - fires when network is disconnected AFTER being connected (does not fire if there is no network connection on first subscription, only fires on CHANGE of this status). After this event fires, we will stop the queue.\n \n - On first entry to MAIN screen in Aiber, we check the network type:\n * Type = Wifi - that means we're connected and the queue can be started.\n * Type = None - that means we're not connected and the queue will not be started.\n \n - Regardless of network status, Aiber stores items locally and those are considered \"queued\" until three things happen:\n * Incident \"start\" items are saved, as these five items are processed by one specific API to start an event. Until these are saved, any subsequent saves will be rejected as \"no incident found to match these\".\n * Item is successfully \"sent\" to the cloud (i.e. a 200 response code returned by the sending API is received).\n * Item is successfully \"acknowledged\" (confirmed as received) by the cloud (i.e. we get a 200 response code plus the actual item returned by the API request to read the item).\n\n */\n\n // ***********************************************\n // QUEUE MANAGER FUNCTIONS\n // Comments serv-db-qm-1 to serv-db-qm-8 below\n // ***********************************************\n\n // serv-db-qm-1\n // First Run mechanism handles subscribing to network events\n // such as connect/disconnect and provision of network type (wifi, etc.).\n // Also handles update of network status icon at top of Aiber screen.\n firstRun() {\n console.log(\"Inside firstRun()\");\n if (!this.sessionStartedOK) {\n this.startQueue();\n }\n return new Promise((resolve, reject) => {\n let connectSubscription = this.network.onConnect().subscribe(() => {\n //console.log(\"network connected!\");\n this.netStatusIcon = \"cloud-wait\";\n setTimeout(() => {\n console.log(\"Network Type: \", this.network.type);\n this.netConn = true;\n this.netStatusIcon = \"cloud-ok\";\n this.startQueue();\n }, 3000);\n });\n let disconnectSubscription = this.network.onDisconnect().subscribe(() => {\n //console.log(\"network was disconnected!\");\n this.netConn = false;\n this.netStatusIcon = \"cloud-not-ok\";\n this.stopQueue();\n });\n //console.log(\"Network type is: \" + this.network.type);\n if (this.network.type === \"wifi\") {\n this.netConn = true;\n this.netStatusIcon = \"cloud-ok\";\n }\n resolve();\n });\n }\n\n // serv-db-qm-2\n // Queue start mechanism which checks for network availability and\n // then begins processing the queue in sequence:\n // 1 - unsent items\n // 2 - acknowledgements\n // 3 - typing states (ground and local)\n // Automatically runs every 3 seconds\n startQueue() {\n if (this.netConn && this.sessionStartedOK && this.network.type == \"wifi\") {\n //Engage a timer interval of 3 seconds\n this.queue = setInterval(() => {\n //Check for network\n //if network OK:\n if (this.netConn) {\n //Remove network warnings\n this.displayNetworkWarning(false).then(() => {\n if (this.sessionStartedOK) {\n //console.log(\"Session was started OK!\");\n //Send unsent items\n this.sendUnsentItems().then(() => {\n // //Fetch unacknowledged item acknowledgements\n // this.acknowledgeItems().then(() => {\n // //Update remote system with local typing status\n // this.updateLocalTypingStatus().then(() => {\n // //Update local system with remote typing status\n // this.updateRemoteTypingStatus().then(() => {\n // //Do whatever is next...\n console.log(\"Queue running!\");\n // });\n // });\n // });\n });\n }\n });\n }\n }, 3000);\n } else {\n //Network not OK\n //if no chat active, network issue warning is displayed (first, as a modal popup for the user to acknowledge, thereafter as an icon indicating network issues)\n //if chat is active, no modal popup will be shown, but a message will be inserted into local chat to explain that the network has issues and that chat will be sent when connection is once again available\n //console.log(\"Network not OK\");\n //console.log(\"Network Type: \", this.network.type);\n if (\n //this.netConn &&\n //this.network.type === \"wifi\" &&\n !this.sessionStartedOK\n ) {\n if (!this.startupQueue) {\n console.log(\"Starting Startup Queue\")\n this.startupQueue = setInterval(() => {\n //Incident start not yet sent, keep trying every five seconds\n if (!this.sessionStartedOK && this.startStreamed === 0) {\n this.streamStart(\n this.startAVPU,\n this.startA,\n this.startB,\n this.startC,\n this.startCon\n );\n }\n console.log(\"startup queue running\");\n }, 5000);\n }\n }\n }\n }\n\n // serv-db-qm-3\n // Queue stopping mechanism. Called if Aiber \"put to sleep\" instead of being\n // switched off. Saves network polls draining battery in the background.\n stopQueue() {\n clearInterval(this.queue);\n }\n\n // serv-db-qm-4\n // Network warning mechanism\n displayNetworkWarning(showWarning: boolean) {\n return new Promise((resolve, reject) => {\n if (showWarning) {\n alert(this.netWarningText);\n } else {\n //console.log(\"No network warnings!\");\n }\n resolve();\n });\n }\n\n // serv-db-qm-5\n // Unsent item sending mechanism\n sendUnsentItems() {\n return new Promise((resolve, reject) => {\n if (this.sessionStartedOK) {\n\n var updateSQL = \"\";\n //Get results set for those items\n //with no \"sent\" date\n this.theSQL =\n //\"SELECT * FROM reportdetail WHERE entrylogged IS NOT NULL AND (reportsent IS NULL AND reportack IS NULL) ORDER BY repdetailid\";\n \"SELECT * FROM reportdetail WHERE entrylogged IS NOT NULL AND reportack IS NULL ORDER BY repdetailid\";\n //console.log(\"Unsent: \" + this.theSQL);\n return this.database.executeSql(this.theSQL, []).then(\n (data) => {\n if (data.rows.length > 0) {\n for (var i: number = 0; i < data.rows.length; i++) {\n //Send via API call\n console.log(\"API data being sent:\",\n data.rows.item(i).messagetype,\n data.rows.item(i).entryname,\n data.rows.item(i).entryvalue,\n data.rows.item(i).entryvalue2,\n data.rows.item(i).repdetailid\n );\n console.log(\"repdetailid:\", data.rows.item(i).repdetailid);\n //update table to say that records have been sent...\n updateSQL =\n \"UPDATE reportdetail SET reportsent=? WHERE repdetailid=?\";\n return this.database\n .executeSql(updateSQL, [this.getUnixTime(), data.rows.item(i).repdetailid])\n .then((outcome) => {\n console.log(\"updated repdetailid, streaming now...\");\n this.streamData(\n data.rows.item(i).messagetype,\n data.rows.item(i).entryname,\n data.rows.item(i).entryvalue,\n data.rows.item(i).entryvalue2,\n data.rows.item(i).repdetailid\n ).then(() => {\n console.log(\"Back to 290\");\n });\n },\n (err) => {\n console.log(\"Error in reportdetail update:\", err)\n return [];\n });\n }\n resolve();\n } else {\n resolve();\n }\n },\n (err) => {\n //console.log(\"unSentItems error: \" + JSON.stringify(err));\n reject(\"Error!\");\n return [];\n }\n );\n resolve();\n }\n });\n\n }\n\n // serv-db-qm-6\n // Item acknowledgement mechanism - this mechanism polls the ground to\n // ensure that all items sent have actually been received.\n acknowledgeItems() {\n return new Promise((resolve, reject) => {\n this.getAck();\n resolve();\n });\n }\n\n // serv-db-qm-7\n // Local typing status mechanism - tells ground when the Aiber user\n // is typing and when they stop typing\n updateLocalTypingStatus() {\n return new Promise((resolve, reject) => {\n this.updateLocalTyping();\n resolve();\n });\n }\n\n // serv-db-qm-8\n // Remote typing status mechanism - determines when the ground user\n // is typing and when they stop typing\n updateRemoteTypingStatus() {\n return new Promise((resolve, reject) => {\n this.updateRemoteTyping();\n resolve();\n });\n }\n\n // ****** END OF QUEUE FUNCTIONS ******\n\n // *******************************\n // ****** API FUNCTIONS ******\n // *******************************\n\n // Http Options\n httpOptions = {\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"cache-control\": \"no-cache\",\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Headers\":\n \"Origin, Content-Type, X-Auth-Token, Accept, Authorization, X-Request-With, Access-Control-Request-Method, Access-Control-Request-Headers\",\n \"Access-Control-Allow-Credentials\": \"true\",\n \"Access-Control-Allow-Methods\":\n \"GET, POST, DELETE, PUT, OPTIONS, TRACE, PATCH, CONNECT\",\n }),\n };\n\n // Handle API errors\n handleError(error: HttpErrorResponse) {\n if (error.error instanceof ErrorEvent) {\n // A client-side or network error occurred. Handle it accordingly.\n console.error(\"An error occurred:\", error.error.message);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong,\n console.error(\n `Backend returned code ${error.status}, ` +\n `body was: ${JSON.stringify(error, [\n \"message\",\n \"NSError\",\n \"arguments\",\n \"type\",\n \"name\",\n ])}`\n );\n }\n // return an observable with a user-facing error message\n return throwError(\"An error occurred: \" + error.statusText);\n }\n\n // Create a new item\n getGroundTyping(item): Observable<any> {\n //console.log(\"id being sent: \", item);\n return this.http\n .post(this.groundtyping_base_path, item, this.httpOptions)\n .pipe(retry(2), catchError(this.handleError));\n }\n\n getGroundChat(item): Observable<any> {\n //console.log(\"id being sent: \", item);\n return this.http\n .post(this.groundchat_base_path, item, this.httpOptions)\n .pipe(retry(2), catchError(this.handleError));\n }\n\n streamObs(item): Observable<any> {\n //console.log(\"Session Obs Item [344]\", item);\n return this.http\n .post(this.base_path, item, this.httpOptions)\n .pipe(retry(2), catchError(this.handleError));\n }\n\n streamSessionStart(item): Observable<any> {\n return this.http\n .post(this.start_base_path, item, this.httpOptions)\n .pipe(catchError(this.handleError));\n }\n\n sendChat(item): Observable<any> {\n //console.log(item);\n return this.http\n .post(this.chat_base_path, item, this.httpOptions)\n .pipe(retry(2), catchError(this.handleError));\n }\n\n sendCasualty(item): Observable<any> {\n //console.log(item);\n return this.http\n .post(this.casualty_base_path, item, this.httpOptions)\n .pipe(retry(2), catchError(this.handleError));\n }\n\n saveChat(chat) {\n this.database\n .executeSql(\n \"INSERT INTO chats (incidentid, aibermsg, msgtime, deleted) VALUES(?,?,?,?)\",\n [this.theSessionID, chat, this.getUnixTime(), 0]\n )\n .then(() => {\n //saved!\n });\n }\n\n streamChat(chat) {\n var msgTime;\n //console.log(\"streamChat called!\");\n this.storage.get(\"sessionTime\").then((data) => {\n this.incidentTime = data;\n this.aiberChat = chat;\n msgTime = this.getUnixTime();\n\n var sJSON =\n '{ \"incidentid\" : \"' +\n this.theSessionID +\n '\", \"aibermsg\" : \"' +\n this.aiberChat +\n '\", \"controlmsg\" : \"\", \"msgtime\": ' +\n msgTime +\n ', \"msgrecd\" : 0, \"msgread\": 0}';\n\n //console.log(\"[database.service.ts:88] \" + sJSON);\n this.sendChat(JSON.parse(sJSON)).subscribe((data) => {\n //console.log(\"Chat Data streamed!\");\n });\n });\n }\n\n streamCasualty() {\n var msgTime;\n //console.log(\"streamChat called!\");\n this.storage.get(\"sessionTime\").then((data) => {\n this.incidentTime = data;\n\n if (!this.casualty[0].age) {\n this.casualty[0].age = 0;\n }\n\n var casualtyJSON =\n '{\"incidentid\":\"' +\n this.theSessionID +\n '\", \"gender\": \"' +\n this.casualty[0].gender +\n '\", \"dob\":\"' +\n this.casualty[0].dob +\n '\", \"age\": ' +\n this.casualty[0].age +\n ', \"alcohol\":\"' +\n this.casualty[0].alcohol +\n '\", \"allergies\":\"' +\n this.casualty[0].allergies +\n '\", \"allergydetails\":\"' +\n this.casualty[0].allergydetails +\n '\", \"medicinetaken\":\"' +\n this.casualty[0].medicinetaken +\n '\", \"medhist\":\"' +\n this.casualty[0].medhist +\n '\", \"flight\":\"' +\n this.casualty[0].flight +\n '\", \"seat\":\"' +\n this.casualty[0].seat +\n '\", \"arrivalairport\":\"' +\n this.casualty[0].arrivalairport +\n '\", \"lastmeal\":\"' +\n this.casualty[0].lastmeal +\n '\", \"detailsadded\":' +\n this.casualty[0].detailsadded +\n ', \"complaint\":\"' +\n this.casualty[0].complaint +\n '\", \"history\":\"' +\n this.casualty[0].history +\n '\", \"deleted\":0}';\n\n //console.log(\"[database.service.ts:430] \" + casualtyJSON);\n this.sendCasualty(JSON.parse(casualtyJSON)).subscribe((data) => {\n //console.log(\"Casualty Data streamed!\");\n });\n });\n }\n\n streamStart(avpu, a, b, c, u) {\n\n return new Promise((resolve, reject) => {\n var reportTime;\n let avpuStatus = \"\";\n let aStatus = \"\";\n let bStatus = \"\";\n let cStatus = \"\";\n let uStatus = \"\";\n\n switch (avpu) {\n case \"ALERT\":\n avpuStatus = \"-ok\";\n break;\n\n case \"RESPONDS TO VOICE\":\n avpuStatus = \"\";\n break;\n\n case \"RESPONDS TO PAIN\":\n avpuStatus = \"-warn\";\n break;\n\n case \"UNRESPONSIVE\":\n avpuStatus = \"-not-ok\";\n break;\n }\n\n if (a.indexOf(\"CLEAR\") !== -1) {\n aStatus = \"-ok\";\n } else {\n aStatus = \"-not-ok\";\n }\n\n if (b.indexOf(\"IRREGULAR\") === -1) {\n bStatus = \"-ok\";\n } else {\n bStatus = \"-not-ok\";\n }\n\n if (c.indexOf(\"PALE\") !== -1) {\n cStatus = \"-ok\";\n } else {\n cStatus = \"-not-ok\";\n }\n\n if (u.indexOf(\"YES\") === -1) {\n uStatus = \"-ok\";\n } else {\n uStatus = \"-not-ok\";\n }\n\n this.storage.get(\"sessionTime\").then((data) => {\n this.incidentTime = data;\n // console.log(\n // \"[database.service.ts:82] incidentTime: \" + this.incidentTime\n // );\n reportTime = this.getUnixTime();\n\n var sJSON =\n '{ \"incidentid\" : \"' +\n this.theSessionID +\n '\", \"username\" : \"TRTest\", \"incidenttime\" : ' +\n this.incidentTime +\n ', \"reporttime\" : ' +\n reportTime +\n ', \"latitude\" : \"' +\n this.gpsLat +\n '\", \"longitude\" : \"' +\n this.gpsLong +\n '\", \"AVPU\" : \"' +\n avpu +\n '\", \"avpustatus\" : \"' +\n avpuStatus +\n '\", \"A\" : \"' +\n a +\n '\", \"astatus\" :\"' +\n aStatus +\n '\", \"B\" : \"' +\n b +\n '\", \"bstatus\" :\"' +\n bStatus +\n '\", \"C\" : \"' +\n c +\n '\", \"cstatus\" :\"' +\n cStatus +\n '\", \"U\" : \"' +\n u +\n '\", \"ustatus\" :\"' +\n uStatus +\n '\", \"battery\" : 100, \"pluggedin\" : 1 , \"reportlog\" : \"test1\"}';\n\n console.log(\"JSON streamStart [628]:\", sJSON);\n //this.firstRun().then(() => {\n if (this.startStreamed === 0) {\n this.startStreamed = this.startStreamed + 1;\n console.log(\"Getting into streamSessionStart, startStreamed = \", this.startStreamed);\n this.streamSessionStart(JSON.parse(sJSON)).subscribe(\n (data) => {\n clearInterval(this.startupQueue);\n console.log(\"Incident Start Data streamed!\");\n // Update start items as sent\n this.database\n .executeSql(\n \"UPDATE reportdetail SET processing=?, reportsent=?, reportack=? WHERE reportid=?\",\n [this.startStreamed, this.getUnixTime(), this.getUnixTime(), this.theSessionID]\n )\n .then(() => {\n this.sessionStartedOK = true;\n this.startQueue();\n });\n },\n (err) => {\n this.sessionStartedOK = false;\n this.startStreamed = 0;\n this.startQueue();\n console.log(\"Session start not streamed!\", err);\n }\n );\n }\n //});\n });\n });\n }\n\n streamData(mType, eType, eVal1, eVal2?, repdetailid?) {\n console.log(\"streamData [634]: \", \"mType: \" + mType, \"eType: \" + eType, \"eVal1: \" + eVal1, \"eVal2: \" + eVal2, \"repdetailid: \" + repdetailid);\n return new Promise((resolve, reject) => {\n var reportTime;\n let avpuStatus = \"\";\n let aStatus = \"\";\n let bStatus = \"\";\n let cStatus = \"\";\n let uStatus = \"\";\n let sandsStatus = \"\";\n let treatmentStatus = \"\";\n\n this.storage.get(\"sessionTime\").then((data) => {\n this.incidentTime = data;\n reportTime = this.getUnixTime();\n\n switch (eType.toUpperCase()) {\n case \"AVPU\":\n switch (eVal1) {\n case \"ALERT\":\n avpuStatus = \"-ok\";\n break;\n\n case \"RESPONDS TO VOICE\":\n avpuStatus = \"\";\n break;\n\n case \"RESPONDS TO PAIN\":\n avpuStatus = \"-warn\";\n break;\n\n case \"UNRESPONSIVE\":\n avpuStatus = \"-not-ok\";\n break;\n }\n eVal2 = avpuStatus;\n\n break;\n\n case \"AIRWAY\":\n if (eVal1.indexOf(\"CLEAR\") !== -1) {\n aStatus = \"-ok\";\n } else {\n aStatus = \"-not-ok\";\n }\n eVal1 = \"AIRWAY<br>\" + eVal1;\n eVal2 = aStatus;\n break;\n\n case \"BREATHING\":\n if (eVal1.indexOf(\"IRREGULAR\") === -1) {\n bStatus = \"-ok\";\n } else {\n bStatus = \"-not-ok\";\n }\n eVal1 = \"BREATHING<br>\" + eVal1;\n eVal2 = bStatus;\n break;\n\n case \"CIRCULATION\":\n if (eVal1.indexOf(\"PALE\") !== -1) {\n cStatus = \"-ok\";\n } else {\n cStatus = \"-not-ok\";\n }\n eVal1 = \"CIRCULATION<br>\" + eVal1;\n eVal2 = cStatus;\n\n break;\n\n case \"UNCONSCIOUS\":\n eType = eType.toUpperCase();\n if (eVal1.indexOf(\"NO\") !== -1) {\n uStatus = \"-ok\";\n } else {\n uStatus = \"-not-ok\";\n }\n eVal1 = \"UNCONSCIOUS<br>\" + eVal1;\n eVal2 = uStatus;\n break;\n\n case \"AED\":\n case \"WERE SHOCKS GIVEN?\":\n case \"OXYGEN\":\n case \"BAG VALVE MASK\":\n case \"CLEAR AIRWAY\":\n case \"CONTROL OF BLEEDING\":\n case \"CPR\":\n case \"WAS PULSE RESTORED?\":\n case \"WAS RESPIRATION RESTORED?\":\n case \"WAS CONSCIOUSNESS REGAINED?\":\n case \"HEAD TILT/CHIN LIFT\":\n case \"JAW THRUST\":\n case \"MEDICINE GIVEN\":\n case \"MOVE PATIENT\":\n case \"OROPHARYNGEAL AIRWAY\":\n case \"SUCTION\":\n //Treatments\n eType = eType.toUpperCase();\n if (eVal1.indexOf(\"YES\") !== -1) {\n //eVal1 = \"\"\n }\n break;\n\n case \"HEART RATE\":\n case \"RESPIRATORY RATE\":\n case \"OXYGEN SATURATION\":\n case \"BLOOD PRESSURE\":\n case \"TEMPERATURE\":\n console.log(\"eType:\", eType, \"eVal1:\", eVal1);\n eVal1 = eVal1;\n break;\n\n default:\n console.log(eVal1);\n eVal1 = eType.toUpperCase() + \"<br>\" + eVal1;\n }\n\n eVal2 = !eVal2 ? \"\" : eVal2;\n\n var sJSON =\n '{ \"incidentid\" : \"' +\n this.theSessionID +\n '\", \"username\" : \"TRTest\", \"incidenttime\" : ' +\n this.incidentTime +\n ', \"reporttime\" : ' +\n reportTime +\n ', \"latitude\" : \"' +\n this.gpsLat +\n '\", \"longitude\" : \"' +\n this.gpsLong +\n '\", \"message_type\" : \"' +\n mType +\n '\", \"entry_type\" : \"' +\n eType +\n '\", \"entry_val1\" : \"' +\n eVal1 +\n '\", \"entry_val2\" : \"' +\n eVal2 +\n '\", \"battery\" : 100, \"pluggedin\" : 1 , \"reportlog\" : \"test1\"}';\n\n //Duplication prevention - Adding string which contains the transaction currently being requested to be queued/sent minus the reporttime (time the transaction was queued to be sent).\n //This is then compared to the last transaction sent and if the same, is ignored.\n var sCompare = '{ \"incidentid\" : \"' +\n this.theSessionID +\n '\", \"username\" : \"TRTest\", \"incidenttime\" : ' +\n this.incidentTime +\n ', \"reporttime\" : ' +\n this.gpsLat +\n '\", \"longitude\" : \"' +\n this.gpsLong +\n '\", \"message_type\" : \"' +\n mType +\n '\", \"entry_type\" : \"' +\n eType +\n '\", \"entry_val1\" : \"' +\n eVal1 +\n '\", \"entry_val2\" : \"' +\n eVal2 +\n '\", \"battery\" : 100, \"pluggedin\" : 1 , \"reportlog\" : \"test1\"}';\n\n console.log(\"[database.service.ts:765] \" + sJSON);\n if (this.dataStreamed !== sCompare) {\n this.dataStreamed = sCompare;\n this.streamObs(JSON.parse(sJSON)).subscribe(\n (data) => {\n console.log(\"Getting inside streamObs, startStreamed = \", this.dataStreamed);\n resolve();\n console.log(\"streamObs data returned:\", data);\n if (repdetailid) {\n this.database\n .executeSql(\n \"UPDATE reportdetail SET processing=?, reportack=? WHERE repdetailid=?\",\n [this.dataStreamed, this.getUnixTime(), repdetailid]\n )\n .then(() => {\n this.sessionStartedOK = true;\n this.startQueue();\n });\n }\n console.log(\"Data streamed!\");\n },\n (err) => {\n this.dataStreamed = \"\";\n console.log(\"Not streamed:\", err);\n }\n );\n }\n });\n });\n }\n\n // logECG() {\n // this.streamData(\"C\", \"ECG\", \"1\");\n // }\n\n getAck() { }\n\n updateLocalTyping() { }\n\n updateRemoteTyping() { }\n\n // ****** END OF API FUNCTIONS ******\n\n // *******************************\n // ****** DATABASE FUNCTIONS ******\n // *******************************\n\n getDatabaseState() {\n return this.dbReady.asObservable();\n }\n\n processGroundChat(chat) {\n return new Promise(async (resolve, reject) => {\n for (var i = 0; i < chat.groundChats.length; i++) {\n await this.database\n .executeSql(\"SELECT * FROM chats WHERE msgjson=?\", [\n JSON.stringify(chat.groundChats[i]),\n ])\n .then((data) => {\n if (data.rows.length === 0) {\n //Insert it into the chats table on Aiber\\\n this.database.executeSql(\n \"INSERT INTO chats (incidentid, controlmsg, msgtime, msgjson, deleted) VALUES(?,?,?,?,?)\",\n [\n chat.groundChats[i].incidentid,\n chat.groundChats[i].controlmsg,\n chat.groundChats[i].msgtime,\n JSON.stringify(chat.groundChats[i]),\n 0,\n ]\n );\n // .then(() => {\n // console.log(`Chat ${i} has been inserted!`);\n // });\n }\n });\n }\n resolve();\n });\n }\n\n async getAllChat() {\n return this.database\n .executeSql(\n \"SELECT * FROM chats WHERE incidentid=? AND controlmsg IS NOT NULL AND deleted=0 ORDER BY msgtime\",\n [this.theSessionID]\n )\n .then((data) => {\n return data;\n });\n }\n\n getATMISTObs() {\n this.theSQL =\n \"SELECT * FROM reportdetail WHERE reportid='\" +\n this.theSessionID +\n \"' AND entrytype='injuries' AND deleted=0 ORDER BY entrylogged\";\n //console.log(\"Signs: \" + this.theSQL);\n return this.database.executeSql(this.theSQL, []).then(\n (data) => {\n let atmistInjuries = [];\n if (data.rows.length > 0) {\n for (var i: number = 0; i < data.rows.length; i++) {\n atmistInjuries.push({\n atmistEntryLogged: data.rows.item(i).entrylogged.substr(11),\n atmistSign: data.rows.item(i).entryname,\n atmistValue: data.rows.item(i).entryvalue,\n atmistSignLine:\n data.rows.item(i).entrylogged.substr(11) +\n \" \" +\n data.rows.item(i).entryname +\n \": \" +\n data.rows.item(i).entryvalue,\n });\n }\n }\n return atmistInjuries;\n },\n (err) => {\n //console.log(\"getATMISTSigns error: \" + JSON.stringify(err));\n return [];\n }\n );\n }\n\n async clearDatabase() {\n this.theSQL = [\n \"DELETE FROM casualtydetails\",\n \"DELETE FROM reports\",\n \"DELETE FROM reportdetail\",\n \"DELETE FROM chats\",\n ];\n\n this.database.sqlBatch(this.theSQL).then(() => {\n console.warn(\"clearDatabase completed\");\n });\n\n return await true;\n }\n\n getUnixTime() {\n var ud = new Date();\n var unixTime = (ud.getTime() / 1000) | 0;\n return unixTime;\n }\n\n getTimeFromUnixTime(unixTimestamp) {\n var dateObj = new Date(unixTimestamp * 1000);\n //TODO - make ALL dates and times UTC\n //so, remove the line immediately below this\n //which is currently adding one hour for BST\n //dateObj.setHours(dateObj.getHours() + 1);\n var returnString =\n this.addZero(dateObj.getHours()) +\n \":\" +\n this.addZero(dateObj.getMinutes()) +\n \":\" +\n this.addZero(dateObj.getSeconds());\n return returnString;\n }\n\n addZero(i) {\n if (i < 10) {\n i = \"0\" + i;\n }\n return i;\n }\n\n getCurrentTime() {\n var d = new Date();\n\n //console.log(d);\n var theDate = \"\";\n var theMonth: number;\n theDate = d.getFullYear() + \"-\";\n theMonth = d.getMonth();\n theMonth++; //Javascript months are zero based, so January is 0, March is 2, etc. so we have to add 1 to get the Gregorian month number\n if (theMonth < 10) {\n theDate += \"0\" + theMonth + \"-\";\n } else {\n theDate += theMonth + \"-\";\n }\n\n if (d.getDate() < 10) {\n theDate += \"0\" + d.getDate();\n } else {\n theDate += d.getDate();\n }\n theDate += \" \";\n\n if (d.getHours() < 10) {\n theDate += \"0\" + d.getHours();\n } else {\n theDate += d.getHours();\n }\n theDate += \":\";\n\n if (d.getMinutes() < 10) {\n theDate += \"0\" + d.getMinutes();\n } else {\n theDate += d.getMinutes();\n }\n theDate += \":\";\n\n if (d.getSeconds() < 10) {\n theDate += \"0\" + d.getSeconds();\n } else {\n theDate += d.getSeconds();\n }\n\n return theDate;\n }\n\n updateCasualtyDetails() {\n //console.log(\"Updated casualty details [710]\", this.casualty[0]);\n var theSaveTime = this.getUnixTime();\n //console.log(theSaveTime);\n this.casualty[0].detailsadded = theSaveTime.toString();\n this.database\n .executeSql(\n \"UPDATE casualtydetails SET gender=?, dob=?, age=?, alcohol=?, allergies=?, allergydetails=?, medicinetaken=?, medhist=?, flight=?, seat=?, arrivalairport=?, lastmeal=?, detailsadded=? WHERE reportid=?\",\n [\n this.casualty[0].gender,\n this.casualty[0].dob,\n this.casualty[0].age,\n this.casualty[0].alcohol,\n this.casualty[0].allergies,\n this.casualty[0].allergydetails,\n this.casualty[0].medicinetaken,\n this.casualty[0].medhist,\n this.casualty[0].flight,\n this.casualty[0].seat,\n this.casualty[0].arrivalairport,\n this.casualty[0].lastmeal,\n this.casualty[0].detailsadded,\n this.theSessionID,\n ]\n )\n .then((result) => {\n this.database\n .executeSql(\"UPDATE reports SET complaint=? WHERE sessionid=?\", [\n this.casualty[0].complaint,\n this.theSessionID,\n ])\n .then(() => {\n this.database\n .executeSql(\"UPDATE reports SET history=? WHERE sessionid=?\", [\n this.casualty[0].history,\n this.theSessionID,\n ])\n .then(() => {\n //stream casualty details\n this.streamCasualty();\n });\n });\n });\n }\n\n startSession(avpu, a, b, c, con) {\n //Store these in case the start doesn't get through.\n this.startAVPU = avpu;\n this.startA = a;\n this.startB = b;\n this.startC = c;\n this.startCon = con;\n\n //console.log(this.getCurrentTime());\n var theTime = this.getCurrentTime();\n this.theBattery = 999;\n var theSessionTime = this.getUnixTime();\n this.theSessionID = this.device.uuid + \"-\" + theSessionTime;\n this.storage.set(\"sessionID\", this.theSessionID);\n this.storage.set(\"sessionTime\", theSessionTime);\n this.storage.get(\"sessionID\").then((data) => {\n //console.log(\"[database.service.ts:226] SessionID:\" + data);\n //console.log(\"[database.service.ts:228] SessionID:\" + this.theSessionID);\n });\n this.storage.get(\"sessionTime\").then((data) => {\n this.incidentTime = data;\n //console.log(\"[database.service.ts:233] SessionTime:\" + data);\n });\n //Now save the first set of information, AVPU, ABC, Consciousness, etc.\n this.theSQL =\n \"INSERT INTO reports(sessionid, loggedat, batterystatus, gpslat, gpslong, deleted) VALUES('\" +\n this.theSessionID +\n \"', '\" +\n theTime +\n \"', \" +\n this.theBattery +\n \", '\" +\n this.gpsLat +\n \"', '\" +\n this.gpsLong +\n \"', 0)\";\n //console.log(this.theSQL);\n this.database.executeSql(this.theSQL, []).then(\n (data) => {\n this.database\n .executeSql(\"INSERT into casualtydetails (reportid) VALUES(?)\", [\n this.theSessionID,\n ])\n .then(() => {\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"S\",\n \"injuries\",\n \"AVPU\",\n avpu.replace(\"<br>\", \" \"),\n theTime,\n 0,\n ]\n )\n .then(() => {\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"injuries\",\n \"Airway\",\n a.toUpperCase(),\n theTime,\n 0,\n ]\n )\n .then(() => {\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"injuries\",\n \"Breathing\",\n b.toUpperCase(),\n theTime,\n 0,\n ]\n )\n .then(() => {\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"injuries\",\n \"Circulation\",\n c.toUpperCase(),\n theTime,\n 0,\n ]\n )\n .then(() => {\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"injuries\",\n \"Has been unconscious?\",\n con.toUpperCase(),\n theTime,\n 0,\n ]\n )\n .then(() => {\n let avpuStatus = \"\";\n let aStatus = \"\";\n let bStatus = \"\";\n let cStatus = \"\";\n let uStatus = \"\";\n //AVPU status\n //switch(avpu.replace(\"<br>\"))\n // console.log(\n // \"Line 867 about to fire streamStart with: \" +\n // avpu.replace(\"<br>\", \" \"),\n // \"AIRWAY<br>\" + a.toUpperCase(),\n // \"BREATHING<br>\" + b.toUpperCase(),\n // \"CIRCULATION<br>\" + c.toUpperCase(),\n // \"UNCONSCIOUS<br>\" + con.toUpperCase()\n // );\n\n // this.streamStart(\n // avpu.replace(\"<br>\", \" \"),\n // \"AIRWAY<br>\" + a.toUpperCase(),\n // \"BREATHING<br>\" + b.toUpperCase(),\n // \"CIRCULATION<br>\" + c.toUpperCase(),\n // \"UNCONSCIOUS<br>\" + con.toUpperCase()\n // );\n });\n });\n });\n });\n });\n });\n },\n (err) => {\n console.log(\"Error: \", err);\n return err;\n }\n );\n }\n\n fixSQL(incomingSQL: string) {\n return new Promise((resolve, reject) => {\n incomingSQL = incomingSQL.replace(/\\'/g, \"''\");\n //return ;\n resolve(incomingSQL);\n });\n }\n\n saveHistory(hOI) {\n hOI = this.fixSQL(hOI).then((history) => {\n var sSQL =\n \"UPDATE reports SET history='\" +\n history +\n \"' WHERE sessionid='\" +\n this.theSessionID +\n \"'\";\n //console.log(sSQL);\n this.database.executeSql(sSQL, []);\n });\n }\n\n updateBattery(batteryLevel) {\n var sSQL =\n \"UPDATE reports SET batterystatus=\" +\n batteryLevel +\n \" WHERE sessionid='\" +\n this.theSessionID +\n \"'\";\n //console.log(sSQL);\n this.database.executeSql(sSQL, []);\n }\n\n saveAVPU(avpu) {\n var theTime = this.getCurrentTime();\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"sands\", \"AVPU\", avpu, theTime, 0]\n )\n .then(() => {\n // Removed streaming from LIVE updates, left to QueueManager\n //this.streamData(\"C\", \"AVPU\", avpu);\n });\n return;\n }\n\n saveABC(abc, abcVal, statusVal?) {\n var theTime = this.getCurrentTime();\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"sands\",\n abc,\n abcVal\n .replace(abc.toUpperCase(), \"\")\n .replace(\"<br>\", \"\")\n .toUpperCase(),\n theTime,\n 0,\n ]\n )\n .then(() => {\n // Removed streaming from LIVE updates, left to QueueManager\n //this.streamData(\"C\", abc, abcVal, statusVal);\n });\n return;\n }\n\n saveVital(vital, vitalVal, statusVal?) {\n var theTime = this.getCurrentTime();\n\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entryvalue2, entrylogged, deleted) VALUES(?,?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"sands\", vital, vitalVal, statusVal, theTime, 0]\n )\n .then(() => {\n // Removed streaming from LIVE updates, left to QueueManager\n //this.streamData(\"C\", vital, vitalVal, statusVal);\n });\n return;\n }\n\n saveSandS(sands, sandsVal, statusVal?) {\n var theTime = this.getCurrentTime();\n console.log(\"From saveSandS [1228]:\", sands, sandsVal, statusVal);\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entryvalue2, entrylogged, deleted) VALUES(?,?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"sands\",\n this.toTitleCase(sands),\n sandsVal\n .replace(sands.toUpperCase(), \"\")\n .replace(\"<br>\", \"\")\n .toUpperCase(),\n statusVal,\n theTime,\n 0,\n ]\n )\n .then(() => {\n if (sands === \"UNCONSCIOUS\" && sandsVal === \"NO\") {\n sandsVal = \"NOT UNCONSCIOUS\";\n // Removed streaming from LIVE updates, left to QueueManager\n //this.streamData(\"C\", sands, sandsVal, statusVal);\n } else {\n // Removed streaming from LIVE updates, left to QueueManager\n //this.streamData(\"C\", sands, sandsVal, statusVal);\n }\n });\n return;\n }\n\n saveWitnessed(witnessed) { }\n\n toTitleCase(incoming: string) {\n let outgoing = \"\";\n //Check it's not a word in the reserved list\n if (incoming !== \"CPR\" && incoming !== \"AVPU\" && incoming !== \"AED\") {\n let firstChar = incoming.substr(0, 1).toUpperCase();\n let restOfString = incoming.slice(1).toLowerCase();\n outgoing = firstChar + restOfString;\n } else {\n outgoing = incoming;\n }\n return outgoing;\n }\n saveTreatment(treatment, treatmentVal) {\n var theTime = this.getCurrentTime();\n var theTreatment = \"\";\n if (treatmentVal === \"tgSelected\") {\n theTreatment = \"administered\";\n } else {\n theTreatment = \"removed\";\n }\n\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"treatment\",\n this.toTitleCase(treatment),\n theTreatment.toUpperCase(),\n theTime,\n 0,\n ]\n )\n .then(() => {\n // Removed streaming from LIVE updates, left to QueueManager\n //this.streamData(\"C\", treatment, theTreatment.toUpperCase());\n });\n return;\n }\n\n saveAEDShocks(shocks: string) {\n var theTime = this.getCurrentTime();\n\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"treatment\",\n \"Were shocks given?\",\n shocks.toUpperCase(),\n theTime,\n 0,\n ]\n )\n .then(() => {\n // Removed streaming from LIVE updates, left to QueueManager\n //this.streamData(\"C\", \"Were shocks given?\", shocks.toUpperCase());\n });\n return;\n }\n\n savePulseRestored(pulse: string) {\n var theTime = this.getCurrentTime();\n\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"treatment\",\n \"Was pulse restored?\",\n pulse.toUpperCase(),\n theTime,\n 0,\n ]\n )\n .then(() => {\n // Removed streaming from LIVE updates, left to QueueManager\n //this.streamData(\"C\", \"Was pulse restored?\", pulse.toUpperCase());\n });\n return;\n }\n\n saveRespirationRestored(resps: string) {\n var theTime = this.getCurrentTime();\n\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"treatment\",\n \"Was respiration restored?\",\n resps.toUpperCase(),\n theTime,\n 0,\n ]\n )\n .then(() => {\n // Removed streaming from LIVE updates, left to QueueManager\n //this.streamData(\"C\", \"Was respiration restored?\", resps.toUpperCase());\n });\n return;\n }\n\n saveConsciousnessRegained(conc: string) {\n var theTime = this.getCurrentTime();\n\n this.database\n .executeSql(\n \"INSERT INTO reportdetail (reportid, messagetype, entrytype, entryname, entryvalue, entrylogged, deleted) VALUES(?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n \"C\",\n \"treatment\",\n \"Was consciousness regained?\",\n conc.toUpperCase(),\n theTime,\n 0,\n ]\n )\n .then(() => {\n // Removed streaming from LIVE updates, left to QueueManager\n //this.streamData(\"C\", \"Was consciousness regained?\", conc.toUpperCase());\n });\n return;\n }\n\n saveCasualty(\n casComplaint,\n casFName,\n casLName,\n casDOB,\n casAge,\n casGender,\n casHomeAddress,\n casFlight,\n casSeat,\n casAirport,\n casLastMeal,\n casAlcohol,\n casAllergyAnswer,\n casAllergyDetails,\n casMedicine,\n casMedicalHistory\n ) {\n var theTime = this.getCurrentTime();\n\n //First thing; before saving the casualty's details, check to see if they've already been saved and if so, update the existing record.\n this.theSQL =\n \"SELECT * FROM casualtydetails WHERE deleted=0 AND reportid='\" +\n this.theSessionID +\n \"'\";\n //console.log(this.theSQL);\n return this.database.executeSql(this.theSQL, []).then(\n (data) => {\n if (data.rows.length > 0) {\n //If there is a row, then there is a patient, so update the record\n //console.log(\"Updating existing details\");\n let internalSQL =\n \"UPDATE casualtydetails SET fname='\" +\n casFName +\n \"', lname='\" +\n casLName +\n \"', address='\" +\n casHomeAddress +\n \"', gender='\" +\n casGender +\n \"', dob='\" +\n casDOB +\n \"', age=\" +\n casAge +\n \", alcohol='\" +\n casAlcohol +\n \"', allergies='\" +\n casAllergyAnswer +\n \"', allergydetails='\" +\n casAllergyDetails +\n \"', medicinetaken='\" +\n casMedicine +\n \"', medhist='\" +\n casMedicalHistory +\n \"', flight='\" +\n casFlight +\n \"', seat='\" +\n casSeat +\n \"', arrivalairport='\" +\n casAirport +\n \"', lastmeal='\" +\n casLastMeal +\n \"', detailsadded='\" +\n theTime +\n \"' WHERE reportid='\" +\n this.theSessionID +\n \"'\";\n //console.log(\"internalSQL: \" + internalSQL);\n this.database.executeSql(internalSQL, []).then(() => {\n //update the complaint on the report\n var theSQL =\n \"UPDATE reports SET complaint='\" +\n casComplaint +\n \"' WHERE sessionid='\" +\n this.theSessionID +\n \"'\";\n //console.log(\"The SQL from the update is: \" + theSQL);\n this.database.executeSql(theSQL, []).then(() => {\n return;\n });\n return;\n });\n } else {\n //There is no patient saved; insert the details\n //console.log(\"Inserting new details\");\n this.database\n .executeSql(\n \"INSERT INTO casualtydetails (reportid, fname, lname, address, gender, dob, age, alcohol, allergies, allergydetails, medicinetaken, medhist, flight, seat, arrivalairport, lastmeal, detailsadded, deleted) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)\",\n [\n this.theSessionID,\n casFName,\n casLName,\n casHomeAddress,\n casGender,\n casDOB,\n casAge,\n casAlcohol,\n casAllergyAnswer,\n casAllergyDetails,\n casMedicine,\n casMedicalHistory,\n casFlight,\n casSeat,\n casAirport,\n casLastMeal,\n theTime,\n 0,\n ]\n )\n .then(() => {\n //update the complaint on the report\n var theSQL =\n \"UPDATE reports SET complaint='\" +\n casComplaint +\n \"' WHERE sessionid='\" +\n this.theSessionID +\n \"'\";\n //console.log(\"The SQL from the insert is: \" + theSQL);\n this.database.executeSql(theSQL, []).then(() => {\n return;\n });\n return;\n });\n }\n },\n (err) => {\n /*console.log(\n \"Error from saving casualty details: \" + JSON.stringify(err)\n );*/\n return [];\n }\n );\n }\n\n clearSession() {\n this.theSessionID = null;\n }\n\n getCasualtyDetails() {\n this.theSQL =\n \"SELECT * FROM reports WHERE sessionid='\" + this.theSessionID + \"'\";\n //console.log(\"theSQL: \", this.theSQL);\n this.database.executeSql(this.theSQL, []).then(\n (data) => {\n if (data.rows.length > 0) {\n for (var i: number = 0; i < data.rows.length; i++) {\n this.theCasComplaint = data.rows.item(i).complaint;\n }\n }\n return;\n },\n (err) => {\n //console.log(\"getCasualtyDetails error: \" + JSON.stringify(err));\n return [];\n }\n );\n\n this.theSQL =\n \"SELECT * FROM casualtydetails WHERE reportid='\" +\n this.theSessionID +\n \"'\";\n //console.log(this.theSQL);\n return this.database.executeSql(this.theSQL, []).then(\n (data) => {\n let casDetails = [];\n if (data.rows.length > 0) {\n for (var i: number = 0; i < data.rows.length; i++) {\n casDetails.push({\n casFName: data.rows.item(i).fname,\n casLName: data.rows.item(i).lname,\n casHomeAddress: data.rows.item(i).address,\n casGender: data.rows.item(i).gender,\n casDOB: data.rows.item(i).dob,\n casAge: data.rows.item(i).age,\n casAlcohol: data.rows.item(i).alcohol,\n casAllergyAnswer: data.rows.item(i).allergies,\n casAllergyDetails: data.rows.item(i).allergydetails,\n casMedicine: data.rows.item(i).medicinetaken,\n casMedicalHistory: data.rows.item(i).medhist,\n casFlight: data.rows.item(i).flight,\n casSeat: data.rows.item(i).seat,\n casAirport: data.rows.item(i).arrivalairport,\n casLastMeal: data.rows.item(i).lastmeal,\n casComplaint: this.theCasComplaint,\n });\n }\n }\n return casDetails;\n },\n (err) => {\n //console.log(\"getCasualtyDetails error: \" + JSON.stringify(err));\n return [];\n }\n );\n }\n\n getCasualtyAge() {\n this.theSQL =\n \"SELECT * FROM casualtydetails WHERE reportid='\" +\n this.theSessionID +\n \"'\";\n //console.log(this.theSQL);\n return this.database.executeSql(this.theSQL, []).then(\n (data) => {\n let casDetails = [];\n if (data.rows.length > 0) {\n for (var i: number = 0; i < data.rows.length; i++) {\n casDetails.push({\n casAge: data.rows.item(i).age,\n casFirstName: data.rows.item(i).fname,\n casLastName: data.rows.item(i).lname,\n casFullName:\n data.rows.item(i).fname + \" \" + data.rows.item(i).lname,\n casGender: data.rows.item(i).gender,\n });\n }\n }\n return casDetails;\n },\n (err) => {\n //console.log(\"getCasAge error: \" + JSON.stringify(err));\n return [];\n }\n );\n }\n\n formatDateProperly(incoming: string) {\n let theYear = incoming.substr(0, 4);\n let theMonth = incoming.substr(5, 2);\n let theDate = incoming.substr(8, 2);\n let theHour = incoming.substr(11, 2);\n let theMinute = incoming.substr(14, 2);\n let theSecond = incoming.substr(17, 2);\n\n let outgoing = theDate + \"/\" + theMonth + \"/\" + theYear + \" \";\n outgoing += theHour + \":\" + theMinute + \":\" + theSecond;\n return outgoing;\n }\n\n formatDateNLG(incoming: string) {\n let theYear = incoming.substr(0, 4);\n let theMonth = incoming.substr(5, 2);\n let theDate = incoming.substr(8, 2);\n let theHour = incoming.substr(11, 2);\n let theMinute = incoming.substr(14, 2);\n let theSecond = incoming.substr(17, 2);\n\n let outgoing = theHour + \":\" + theMinute + \" (\" + theDate + \"/\";\n outgoing += theMonth + \"/\" + theYear + \")\";\n return outgoing;\n }\n\n getATMISTAVPU() {\n this.theSQL =\n \"SELECT * FROM reportdetail WHERE reportid='\" +\n this.theSessionID +\n \"' ORDER BY entrylogged\";\n //console.log(this.theSQL);\n return this.database.executeSql(this.theSQL, []).then(\n (data) => {\n let avpudetail = [];\n if (data.rows.length > 0) {\n avpudetail.push({\n atmistAVPU: data.rows.item(0).entryvalue,\n atmistA: data.rows.item(1).entryvalue,\n atmistB: data.rows.item(2).entryvalue,\n atmistC: data.rows.item(3).entryvalue,\n atmistCons: data.rows.item(4).entryvalue,\n });\n }\n return avpudetail;\n },\n (err) => {\n //console.log(\"getATMISTAVPU error: \" + JSON.stringify(err));\n return [];\n }\n );\n }\n\n getATMISTTOI() {\n this.theSQL =\n \"SELECT * FROM reports WHERE sessionid='\" +\n this.theSessionID +\n \"' ORDER BY loggedat\";\n //console.log(this.theSQL);\n return this.database.executeSql(this.theSQL, []).then(\n (data) => {\n let reportdetail = [];\n if (data.rows.length > 0) {\n var theProperTOI = this.formatDateProperly(\n data.rows.item(0).loggedat\n );\n var theNLGTOI = this.formatDateNLG(data.rows.item(0).loggedat);\n reportdetail.push({\n atmistTOI: theProperTOI,\n atmistNLGTOI: theNLGTOI,\n atmistComplaint: data.rows.item(0).complaint,\n atmistInjuries: data.rows.item(0).history,\n });\n }\n return reportdetail;\n },\n (err) => {\n //console.log(\"getATMISTTOI error: \" + JSON.stringify(err));\n return [];\n }\n );\n }\n\n getATMISTInjuries() {\n this.theSQL =\n \"SELECT * FROM reportdetail WHERE reportid='\" +\n this.theSessionID +\n \"' AND entrytype='injuries' AND deleted=0 ORDER BY entrylogged\";\n //console.log(\"Signs: \" + this.theSQL);\n return this.database.executeSql(this.theSQL, []).then(\n (data) => {\n let atmistInjuries = [];\n if (data.rows.length > 0) {\n for (var i: number = 0; i < data.rows.length; i++) {\n atmistInjuries.push({\n atmistEntryLogged: data.rows.item(i).entrylogged.substr(11),\n atmistSign: data.rows.item(i).entryname,\n atmistValue: data.rows.item(i).entryvalue,\n atmistSignLine:\n data.rows.item(i).entrylogged.substr(11) +\n \" \" +\n data.rows.item(i).entryname +\n \": \" +\n data.rows.item(i).entryvalue,\n });\n }\n }\n return atmistInjuries;\n },\n (err) => {\n //console.log(\"getATMISTSigns error: \" + JSON.stringify(err));\n return [];\n }\n );\n }\n\n getATMISTSigns() {\n this.theSQL =\n \"SELECT * FROM reportdetail WHERE reportid='\" +\n this.theSessionID +\n \"' AND entrytype='sands' AND deleted=0 ORDER BY entrylogged\";\n //console.log(\"Signs: \" + this.theSQL);\n return this.database.executeSql(this.theSQL, []).then(\n (data) => {\n let atmistSigns = [];\n let atmistValue = \"\";\n if (data.rows.length > 0) {\n for (var i: number = 0; i < data.rows.length; i++) {\n atmistValue = \"\";\n if (data.rows.item(i).entryvalue.indexOf(\".\") !== -1) {\n atmistValue =\n data.rows.item(i).entrylogged.substr(11) +\n \" \" +\n data.rows.item(i).entryname +\n \": \" +\n data.rows.item(i).entryvalue.replace(\".\", \"<sup>.</sup>\");\n } else {\n atmistValue =\n data.rows.item(i).entrylogged.substr(11) +\n \" \" +\n data.rows.item(i).entryname +\n \": \" +\n data.rows.item(i).entryvalue;\n }\n atmistSigns.push({\n atmistEntryLogged: data.rows.item(i).entrylogged.substr(11),\n atmistSign: data.rows.item(i).entryname,\n atmistValue: data.rows.item(i).entryvalue,\n atmistSignLine: atmistValue,\n });\n }\n }\n return atmistSigns;\n },\n (err) => {\n //console.log(\"getATMISTSigns error: \" + JSON.stringify(err));\n return [];\n }\n );\n }\n\n getATMISTTreatment() {\n this.theSQL =\n \"SELECT * FROM reportdetail WHERE reportid='\" +\n this.theSessionID +\n \"' AND entrytype='treatment' AND deleted=0 ORDER BY entrylogged\";\n //console.log(this.theSQL);\n return this.database.executeSql(this.theSQL, []).then(\n (data) => {\n let atmistTreatment = [];\n if (data.rows.length > 0) {\n for (var i: number = 0; i < data.rows.length; i++) {\n atmistTreatment.push({\n atmistEntryLogged: data.rows.item(i).entrylogged.substr(11),\n atmistTreatment: data.rows.item(i).entryname,\n atmistValue: data.rows.item(i).entryvalue,\n });\n }\n } else {\n atmistTreatment.push({\n atmistEntryLogged: \"\",\n atmistTreatment: \"No treatmeants logged yet\",\n atmistValue: \"\",\n });\n }\n return atmistTreatment;\n },\n (err) => {\n //console.log(\"getATMISTTreatment error: \" + JSON.stringify(err));\n return [];\n }\n );\n }\n\n // ****** END OF DATABASE FUNCTIONS ******\n}\n","/**\n * v1.0.0 - 22/09/2020 - FIRST RELEASE\n * v1.0.1 - 30/09/2020 - Patched after first test cycle\n * v1.0.2 - 06/11/2020 - Patched after User Validation\n */\n\nimport { Injectable } from \"@angular/core\";\nimport \"rxjs/add/operator/map\";\nimport { Geolocation } from \"@ionic-native/geolocation/ngx\";\n@Injectable({\n providedIn: \"root\",\n})\nexport class GetlocationService {\n public myLat = 0;\n public myLong = 0;\n public myCoords;\n\n constructor(public geolocation: Geolocation) { }\n getMyLocation() {\n //First job, get my current GPS location\n //console.log(\"Getting location\");\n return this.geolocation\n .getCurrentPosition({ timeout: 1000 })\n .then((resp) => {\n //console.log(\"Getting here!\");\n this.myLat = resp.coords.latitude;\n this.myLong = resp.coords.longitude;\n //for debug in simulator, hardcode these\n //this.myLat = 57.697780;\n //this.myLong = -3.987871;\n //console.log(\"31:My Co-ords are: \" + this.myLat + \" | \" + this.myLong);\n //alert(\"31:My Co-ords are: \" + this.myLat + \" | \" + this.myLong);\n this.myCoords = { theLAT: this.myLat, theLONG: this.myLong };\n return this.myCoords;\n })\n .catch((e) => {\n //console.log(\"Error from getMyLocation!\");\n //console.log(e.message);\n this.myLat = 57.69778;\n this.myLong = -3.987871;\n //console.log(\"40:My Co-ords are: \" + this.myLat + \" | \" + this.myLong);\n //alert(\"40:My Co-ords are: \" + this.myLat + \" | \" + this.myLong);\n this.myCoords = { theLAT: this.myLat, theLONG: this.myLong };\n return this.myCoords;\n });\n }\n}\n","/**\n * v1.0.0 - 22/09/2020 - FIRST RELEASE\n * v1.0.1 - 30/09/2020 - Patched after first test cycle\n * v1.0.2 - 06/11/2020 - Patched after User Validation\n */\n\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class AppGlobals {\n readonly appConfig = {\n personLabel: \"PAX\",\n personLocation: \"seat\",\n supportLocation: \"ground\",\n personDestinationCentre: \"airport\",\n staffType: \"cabin crew\",\n };\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"]} |